c - 如何将内存重新分配给字符串数组

标签 c arrays string

我有一个字符串数组,

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/

相关文章:

c - 动态库动态附加

c - 在线程中休眠(C/POSIX 线程)

java - 在二维数组中查找重复的 INT

java - 无法获取文本字段中的文本输入以解析为双倍

java - 正则表达式\\s*,\\s*有什么作用?

c - 解析已解析的字符串

c - 最长公共(public)子序列 : why is this wrong?

c - 如何在 C 中将 2 个 float 组合并到 1 个结构数组中

javascript - 将 javascript 字符串转换为 php 数组

string - 使用 PERL 脚本精确匹配和替换文件