【发布时间】:2011-06-26 14:23:09
【问题描述】:
我正在尝试附加两个字符,但由于某种原因,我遇到了分段错误。
我的代码是这样的;
#include <string.h>
char *one = (char*)("one");
char *two = (char*)("two");
strcat(one, two);
我似乎在strcat(one, two) 遇到了分段错误,这是为什么呢?
【问题讨论】:
-
调用
strcat之前的内存布局是什么样的?你希望它之后会是什么样子? -
不应该盲目地进行强制转换,在这种情况下应该(因为你应该启用它)warn you about the deprecated conversion 从字符串文字到非常量字符指针。该警告将引导您朝着解决此问题的正确方向前进,下面的答案中多次给出。
标签: c++ linux segmentation-fault append chars