c语言允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放,这些数据存储在堆区。可以根据需要,向系统申请所取空间的大小,因为没有在声明部分定义它们为变量或数组,所以不能通过变量名或数组的方式去引用这些数据,只能通过指针来引用。
对内存的动态分配是通过系统提供的库函数来实现的,主要有malloc,calloc,free,realloc这四个函数。
接下来写一下malloc函数如何实现为一维,二维,三维数组分配空间。
一;一维数组的申请与释放:
例如为一个字符数组分配空间:
char *p = (char *)malloc(m*sizeof(char));