在c中运行时更改大小数组

时间:2012-10-27 14:02:37

标签: c

这是我在C中的代码,我试图动态更改数组大小,但它让我得到空指针。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char *message = {"xxzz"};

message=realloc(message,5 * sizeof(*message));


if ( message == NULL)printf("Memory exhausted\n");

printf("%s",message);



return 0;
}

2 个答案:

答案 0 :(得分:6)

您只能使用reallocmalloc或其他内存分配函数传递指向已分配内存的calloc指针。
如果不这样做会导致未定义的行为,这就是您在代码中所拥有的行为。

答案 1 :(得分:2)

更改为

char *message = malloc(5);