你不能这样做.
当你使用
char *str = "helloworld";
Run Code Online (Sandbox Code Playgroud)
str指向无法修改的字符串.除了文字中的字符外,它还没有任何额外的空间,因此您无法扩展其大小.
如果您需要一个str与添加的换行符相同的字符串,则需要先复制一份.
char *newstr = malloc(strlen(str) + 2);
strcpy(newstr, str);
strcat(newstr, "\n");
Run Code Online (Sandbox Code Playgroud)
请记住在长度上添加2:添加换行符为1个字节,尾随空符号为另一个换行符.
请参阅为什么在写入使用"char*s"而不是"char s []"初始化的字符串时出现分段错误?有关使用之间差异的更多信息
char str[] = "helloworld";
Run Code Online (Sandbox Code Playgroud)
和
char *str = "helloworld";
Run Code Online (Sandbox Code Playgroud)