C语言的动态分配内存中所谓的“动态”体现在哪?

2025-03-22 16:15:49
推荐回答(1个)
回答(1):

  简单来说:动态体现在程序执行过程中而不是一开始就分配内存. 程序在开始执行的时候, 要处理的数据变量有两类:

  一类是一开始就分配内存的变量, 如下面定义的变量:

   int i;
  int a[100]; //

  另外一类就是动态分配内存的变量, 如需要在程序中利用一个100维的指针数组b:

   double *b; // 这里只是定义了一个double类型的指针变量, 但并没有为数组分配内存
  b=(double*)malloc(sizeof(double)*100); //当程序运行到这时才为数组b分配内存,这时程序占用的内存也相应的变大
  free(b); //如果b不需要了, 就可以释放内存, 节省空间. 常用free是编程的好习惯