我想要做的是分配一个char** stringarr
。
在某些地方,stringarr[index]
,我想分配一个char*
。
所以我想在char **
的某些地方保存字符串(char*
)。
例如程序运行后:
stringarr[0] = "Hello", stringarr[1] = "goodbye"
问题是我想释放保存字符串的 char *
,但是当我这样做时,stringarr[0]
不再指向释放的 字符*
。
我该如何解决这个问题?
澄清一下: 我想将字符串(char*)添加到字符串数组(char**)。然后我释放字符串,但不释放字符串数组。我怎样才能做到这一点,而不影响 char**?
最佳答案
处理这个问题的通常方法是将NULL
分配给释放的指针:
free(stringarr[3]);
stringarr[3] = NULL;
您仍然可以访问stringarr
中的其他字符串(但不能访问stringarr[3]
),并且您可以通过检查特定位置是否为NULL
。
关于c:释放 char* 而不破坏 char**,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39511761/