今天我到了The C Programming Language (second edition Brian W. Kernighan & Dennis M. Ritchie)的 167 页面,发现作者说我必须施放 malloc
. 这是本书的一部分:
7.8.5存储管理函数malloc和calloc动态获取内存块 . void * malloc(size_t n)
返回指向未初始化存储的n个字节的指针,如果无法满足请求,则返回NULL . void * calloc(size_t n,size_t size)
为具有指定大小的n个对象的数组返回指向足够可用空间的指针,如果无法满足请求,则返回NULL . 存储初始化为零 . malloc或calloc返回的指针对于有问题的对象具有正确的对齐方式,但必须将其强制转换为适当的类型,如int * ip;
ip =(int *)calloc(n,sizeof(int));
我已经知道 malloc
(和它的族)返回类型 void* 和there are good explanations why not to cast malloc .
但我的问题是:为什么这本书说我应该施展它?
1 回答
来自http://computer-programming-forum.com/47-c-language/a9c4a586c7dcd3fe.htm: