【发布时间】:2009-11-26 15:27:38
【问题描述】:
我很确定我没有做错任何事,但我还是想问一下。
我们有:
struct some_struct **array_of_ptrs = calloc (num, sizeof (struct some_struct*));
现在假设我只是将“数组”中的每个指针指向struct some_struct。现在肯定要释放内存,我只是这样做:
free (array_of_ptrs);
当然这是完全可以接受的?我问的原因是因为我在我的代码中做了类似的事情,而 gdb 抱怨一个免费错误。
【问题讨论】:
-
如果您提供一个重现错误的最小程序会更好。
-
我相信可以做到:struct some_struct **array_of_ptrs = calloc (num, sizeof *array_of_ptrs);
-
在释放
array_of_ptrs之前,您不将array_of_ptrs[0]释放到array_of_ptr[num - 1]吗?