【发布时间】:2011-01-27 02:18:50
【问题描述】:
为什么这段代码会崩溃?
在字符指针上使用strcat 非法?
#include <stdio.h>
#include <string.h>
int main()
{
char *s1 = "Hello, ";
char *s2 = "world!";
char *s3 = strcat(s1, s2);
printf("%s",s3);
return 0;
}
请给出引用数组和指针的正确方法。
【问题讨论】:
-
您使用 strcat 错误。它将第二个字符串附加到第一个字符串的末尾。它返回的字符串只是一种方便。您无法更改常量字符串(您的 s1),这就是它崩溃的原因。 s1 指向只读内存。
-
如果一切正常,代码就不会崩溃。
-
感谢杰森,只要我从你们这些优秀的人那里获得知识,我就不会为投票而烦恼。从现在开始,我将听从您的建议。再次感谢你真的很友善。
-
我认为他是指将代码放入代码块中。在向问题或答案添加代码时,您可以突出显示所有代码文本,然后按文本框上方的“101 010”按钮以很好地格式化它。
-
您应该将字符串文字声明为 const char*,然后编译器会为您捕获此类问题。