无法在 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