无法在 C 中重新分配字符串
Can't realloc character string in C
我在使用 realloc
时遇到了一些问题,例如,这段代码
char *s = (char*)malloc(sizeof(char)*17);
s = "bruhbruhlmaolmao";
s = (char*)realloc(s, sizeof(char)*18);
if(s == NULL) printf("Memory allocation failed");
else printf("%s\n",s);
我正在尝试将 s 指向的内存块重新分配到堆中更大的内存位置。
我编译了它,编译器returns没有警告。当我 运行 可执行文件时,它什么也不打印。我希望你能向我解释为什么以及如何修复它
好吧,显然我通过将 s
分配给一个字符串做出了一个愚蠢的决定:s = "bruhbruhlmaolmao";
,我真正应该做的是使用 string.h
库中的东西,比如 strcpy
我在使用 realloc
时遇到了一些问题,例如,这段代码
char *s = (char*)malloc(sizeof(char)*17);
s = "bruhbruhlmaolmao";
s = (char*)realloc(s, sizeof(char)*18);
if(s == NULL) printf("Memory allocation failed");
else printf("%s\n",s);
我正在尝试将 s 指向的内存块重新分配到堆中更大的内存位置。
我编译了它,编译器returns没有警告。当我 运行 可执行文件时,它什么也不打印。我希望你能向我解释为什么以及如何修复它
好吧,显然我通过将 s
分配给一个字符串做出了一个愚蠢的决定:s = "bruhbruhlmaolmao";
,我真正应该做的是使用 string.h
库中的东西,比如 strcpy