简单来说:动态体现在程序执行过程中而不是一开始就分配内存. 程序在开始执行的时候, 要处理的数据变量有两类:
一类是一开始就分配内存的变量, 如下面定义的变量:
int i;
int a[100]; //
另外一类就是动态分配内存的变量, 如需要在程序中利用一个100维的指针数组b:
double *b; // 这里只是定义了一个double类型的指针变量, 但并没有为数组分配内存
b=(double*)malloc(sizeof(double)*100); //当程序运行到这时才为数组b分配内存,这时程序占用的内存也相应的变大
free(b); //如果b不需要了, 就可以释放内存, 节省空间. 常用free是编程的好习惯