无法在 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("%sn",s);

我正在尝试将s所指向的内存块重新分配到堆中更大的内存位置。

我已经编译了它,编译器没有返回任何警告。当我运行可执行文件时,它什么也不打印。我希望你能向我解释为什么以及如何修复

很明显,我通过将s分配给字符串s = "bruhbruhlmaolmao";做出了一个愚蠢的决定,我真正应该做的是使用string.h库中的一些东西,比如strcpy

最新更新