C语言的动态分配内存中所谓的“动态”体现在哪?
展开全部
简单来说:动态体现在程序执行过程中而不是一开始就分配内存. 程序在开始执行的时候, 要处理的数据变量有两类:
一类是一开始就分配内存的变量, 如下面定义的变量:
int i;
int a[100]; //
另外一类就是动态分配内存的变量, 如需要在程序中利用一个100维的指针数组b:
double *b; // 这里只是定义了一个double类型的指针变量, 但并没有为数组分配内存
b=(double*)malloc(sizeof(double)*100); //当程序运行到这时才为数组b分配内存,这时程序占用的内存也相应的变大
free(b); //如果b不需要了, 就可以释放内存, 节省空间. 常用free是编程的好习惯
追问
那是不是我可以重新分配所需要的内存?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询