我必须安全地释放一个数组:char** a;
它就像一个字符串列表。我知道我有多少char*
。但是我很难释放所有的内存。有没有我可以使用的函数来释放 20 个字节?我试过:
for (int i = 0; i < length; i++)
if (a[i] != null)
free(a[i]); // some of a[i] ARE null, non-null have different sizes
free(a); // crashes here
asm
但我在调试时遇到运行时错误。a 中的所有内容都已分配。对于一个 I malloced 5 个字符串(每个指针 4 个字节)-> 20 个字节。我怎样才能释放整个char**
?