[英]Error: 'zsh: illegal hardware instruction' in C
我正在学习string.h
头文件并编写了一个简单的程序来连接两个字符串。
简单的C程序
#include <stdio.h>
#include <string.h>
int main()
{
char str1[] = "sandeep";
char str2[] = "sahani";
strcat(str1, str2);
printf("%s %s", str1, str2);
return 0;
}
收到一条错误消息:
"/Users/sandeepsahani/Desktop/Sandeep Sahani/Basic Programming/ C programming/Basic Programs/DS/"stringConcat zsh: 非法硬件指令
我的代码有什么问题?
这里有几个问题:
int main()
{
char str1[] = "sandeep";
char str2[] = "sahani";
char str3[100] = {0};
strcat(str3, str1);
strcat(str3, str2);
printf("%s %s %s", str1, str2,str3);
return 0;
}
如果您不指定数组的大小,则该大小刚好足以容纳它的初始化值。 所以str1
只有 8 个字符(7 个字符加上空终止符)。 这没有足够的空间来添加sandeep
。
如果要连接到它,则需要它为附加字符串留出空间。 由于str2
是 6 个字符, str1
至少需要 14 个字符。 所以将其更改为:
char str1[14] = "sandeep";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.