1

这是我在 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;
}
4

2 回答 2

6

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

于 2012-10-27T14:04:37.420 回答
2

改成

char *message = malloc(5);
于 2012-10-27T14:05:56.840 回答