为什么我在char []上调用realloc时出错?

时间:2014-02-26 13:09:13

标签: c undefined-behavior realloc

我有char []这样

char string[] = "Hello world !!!";

当我试图重新分配它的内存时,我收到错误

realloc(string, 50); // error here

3 个答案:

答案 0 :(得分:3)

您只能realloc / malloc / calloc编辑realloc件事。 char数组不是任何一个,所以在这种情况下你得到错误是正常的。

答案 1 :(得分:3)

  

除非ptr为NULL,否则必须通过先前调用malloc(),calloc()或realloc()

返回

您违反了标准,因此您将获得未定义的行为奖励。

答案 2 :(得分:0)

realloc(string, 50);

realloc()的参数,即string应该通过malloc()calloc()realloc()获取,如果不为空