我有一个char*[]
数组。我需要能够为其分配字符串并再次删除它们,但我不知道:
如果有人需要更多信息,请告知我们,我是第一次尝试使用char *
阵列。
答案 0 :(得分:6)
将该数组的每个成员初始化为NULL。 然后,如果某个元素包含NULL,则可以假定它未初始化。 e.g。
char *charPtr[3] = { NULL, NULL, NULL };
要为某个元素指定不同的字符串,您只需将新字符串重新分配给该元素即可。
charPtr[0] = "new string";
正如评论中所提到的,要删除字符串,您可以执行
charPtr[0] = NULL;
或以下,当且仅当charPtr[0]
包含由malloc
和家人或函数strdup
获得的指针时:
free(charPtr[0]);
charPtr[0] = NULL;