我对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