c未知分段故障(核心转储)

时间:2015-11-11 16:26:21

标签: c gcc segmentation-fault

我收到了分段错误,但我不知道原因:

    // Assemble folderPositionString
    char *folderPositionString = "folders-";
    strcat (folderPositionString, "files"); 

理论上,这应该产生一个带有' folders-files'的字符串。作为价值。我之前使用过strcat并且它有效,但由于某些原因它在这里不开心。

如果我注释掉strcat行,那么一切都会编译并运行。

工作代码感谢Eugene

    char folderPositionString [50] = "folders.";
    strcat (folderPositionString, folderPositionRaw);   
    strcat (folderPositionString, ".files");

1 个答案:

答案 0 :(得分:1)

folderPositionString指向一个只读内存,其中分配了字符串文字。在尝试写入其他数据时,您会遇到内存访问冲突。

有关更新的更新:

在第二种情况下,query_string获得与account_id相同的地址值,这可能指向非只读存储器区域。