【发布时间】:2013-02-25 08:38:12
【问题描述】:
释放用 cmallc 分配的无符号指针数组的最佳方法是什么?
uint8_t *buf;
buf = cs_calloc(ca->len + 13);
我喜欢这样,但我知道这不太正确,因为我收到了编译警告:
警告:传递“free”的参数 1 使指针变为整数 没有演员表
for (i = 0; i < ca->len + 13; i++)
{
free(buf[i]);
buf[i] = NULL;
}
free(buf);
这里是 cs_calloc 代码:
void *cs_calloc(size_t size){
return (calloc (1,size));
}
我的问题是 1.我释放的方式,buf,我的意思是首先在循环中释放数组的每个元素(free(buf [i]) 是正确的?我是否需要释放数组的元素,并像上面那样释放数组
- 为什么我会收到编译警告,如果是错误的,有人可以更正我释放分配内存的方式吗(请写下代码应该如何更正?
提前致谢
【问题讨论】:
标签: arrays pointers free unsigned calloc