【发布时间】:2022-01-01 11:59:12
【问题描述】:
#include <stdio.h>
#include <string.h>
int main()
{
char s1[] = "harry";
char s2[] = "ravi";
char s3[54];
puts(strcat(s1, s2));
strcpy(s3 ,strcat(s1, s2));
puts(s3);
return 0;
}
这是我会得到的错误
cd "/Users/deepkar/Desktop/C_COURSE/" && gcc tut27.c -o tut27 && "/Users/deepkar/Desktop/C_COURSE/"tut27
deepkar@Deeps-Air C_COURSE % cd "/Users/deepkar/Desktop/C_COURSE/" && gcc tut27.c -o tut27 && "/Users/deepkar/Desktop/C_COURSE/"tut27
zsh: illegal hardware instruction "/Users/deepkar/Desktop/C_COURSE/"tut27
deepkar@Deeps-Air C_COURSE %
【问题讨论】:
-
s1没有空间容纳组合字符串。行为未定义。 -
strcat函数不会创建新字符串。它将第二个字符串附加到第一个字符串。第一个字符串必须有足够的空间容纳组合字符串,包括空终止符。 -
在此处查看此字符串处理常见问题解答:Common string handling pitfalls in C programming
标签: c string header-files hardware illegal-instruction