这是我在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;
}
答案 0 :(得分:6)
您只能使用realloc
或malloc
或其他内存分配函数传递指向已分配内存的calloc
指针。
如果不这样做会导致未定义的行为,这就是您在代码中所拥有的行为。
答案 1 :(得分:2)
更改为
char *message = malloc(5);