2
我有一個char*[]
陣列。我需要能夠分配字符串,並再次刪除它們,但我不知道:如何檢查數組元素是否被佔用? +1 more
- 如何檢查一個元素是否已經有一個字符串,所以我不覆蓋它,如果它已被佔用,繼續下一個元素?
- 如何在事後再次釋放它?
如果有人需要更多的信息,請讓我知道,我想第一次使用char *
陣列。
我有一個char*[]
陣列。我需要能夠分配字符串,並再次刪除它們,但我不知道:如何檢查數組元素是否被佔用? +1 more
如果有人需要更多的信息,請讓我知道,我想第一次使用char *
陣列。
將該數組的每個成員初始化爲NULL。 然後,如果某個元素包含NULL,則可以假定它未被初始化。例如
char *charPtr[3] = { NULL, NULL, NULL };
要爲某個元素指定一個不同的字符串,您可以將一個新字符串重新分配給該元素。
charPtr[0] = "new string";
正如在評論中提到的,要刪除一個字符串你要麼做一個
charPtr[0] = NULL;
或低於當且僅當charPtr[0]
包含malloc
和家人或功能類似strdup
獲得一個指針:
free(charPtr[0]);
charPtr[0] = NULL;
...並刪除字符串:'charPtr [0] = NULL';或者'free(charPtr [0]); charPtr [0] = NULL;'當且僅當'charPtr [0]'包含由'malloc'類函數或'strdup'獲得的指針。 –