如何检查数组的元素是否被占用?还有+1个

时间:2016-04-15 11:36:31

标签: c arrays

我有一个char*[]数组。我需要能够为其分配字符串并再次删除它们,但我不知道:

  1. 如何查看某个元素是否已包含字符串,因此我不会覆盖它,如果已经占用,则继续执行下一个元素?
  2. 之后如何将其释放?
  3. 如果有人需要更多信息,请告知我们,我是第一次尝试使用char *阵列。

1 个答案:

答案 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;