我有一个字符串数组,
char *string_arr[] = { "Hi", "Hi2", "Hi3", "Hi4" };
现在我需要为数组重新分配内存,因为我必须向数组中插入另一个元素,如“Hi5”。我该怎么做?
我试过:
string_arr = realloc (.....);
但它不起作用,它给出:“赋值中不兼容的类型”错误。
最佳答案
您只能“realloc()”一个指向您从“malloc ()”获得的内存的指针。
char **string_arr;
int nelms = 10;
string_array = (char **)malloc (sizeof (char *) * nelms);
if (!string_array) {
perror ("malloc failed");
return;
}
string_array[0] = strdup ("Hi");
string_array[1] = strdup ("Hi2");
string_array[2] = strdup ("Hi3");
string_array[3] = strdup ( "Hi4");
...
string_array = realloc (...);
...
关于c - 如何将内存重新分配给字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11547153/