1.malloc函数
ANSI C标准规定malloc函数返回值的类型为void*,函数的调用形式为:malloc(size)。要求size的类型为unsigned int。
mallo。函数用来分配size个字节的存储区,返回一个指向存储区首地址的基类型为void的地址。若没有足够的内存单元供分配,函数返回空(NULL)。
2.free函数
Free(p);
这里指针变量P必须指向由动态分配函数malloc或calloc分配的地址。Free函数将指针p所指的存储空间释放,使这部分空间可以由系统重新支配。此函数没有返回值。
ANSI C标准规定calloc函数返回值的类型为void*,函数的调用形式为:calloc(n,size);要求n和size的类型都为unsigned int。
calloc函数用来给n个同一类型的数据项分配连续的存储空间,每个数据项的长度为size个字节。若分配成功,函数返回存储空间的首地址;否则返回空。通过调用calloc函数所分配的存储单元,系统自动置初值0。例如:
char * ps;
ps=(char*)calloc(10,sizeof(char));
以上函数调用语句开辟了10个连续的char类型的存储单元,由ps指向存储单元的首地址。每个存储单元可以存放一个字符。
显然,使用calloc函数动态开辟的存储单元相当于开辟了一个一维数组。函数的第一个参数决定了一维数组的大小;第二个参数决定了数组元素的类型。函数的返回值就是数组的首 地址。
使用calloc函数开辟的动态存储单元,同样可以用free函数释放。其调用形式与13.2.1中介绍的相同。