[英]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.