【发布时间】:2015-11-11 16:26:20
【问题描述】:
我遇到了分段错误,但我不知道为什么:
// Assemble folderPositionString
char *folderPositionString = "folders-";
strcat (folderPositionString, "files");
理论上,这应该产生一个以“文件夹文件”为值的单个字符字符串。我以前使用过 strcat 并且它可以工作,但由于某种原因,它在这里不开心。
如果我注释掉 strcat 行,一切都会编译并正常工作。
感谢 Eugene 的工作代码
char folderPositionString [50] = "folders.";
strcat (folderPositionString, folderPositionRaw);
strcat (folderPositionString, ".files");
【问题讨论】:
-
char *folderPositionString = "folders-";是保存在 只读内存中的字符串文字。 您正在尝试更改 只读内存 中的数据,所以得到seg fault.
标签: c gcc segmentation-fault