我收到了分段错误,但我不知道原因:
// Assemble folderPositionString
char *folderPositionString = "folders-";
strcat (folderPositionString, "files");
理论上,这应该产生一个带有' folders-files'的字符串。作为价值。我之前使用过strcat并且它有效,但由于某些原因它在这里不开心。
如果我注释掉strcat行,那么一切都会编译并运行。
工作代码感谢Eugene
char folderPositionString [50] = "folders.";
strcat (folderPositionString, folderPositionRaw);
strcat (folderPositionString, ".files");
答案 0 :(得分:1)
folderPositionString
指向一个只读内存,其中分配了字符串文字。在尝试写入其他数据时,您会遇到内存访问冲突。
有关更新的更新:
在第二种情况下,query_string
获得与account_id
相同的地址值,这可能指向非只读存储器区域。