質問: ### 前提・実現したいこと パスワードの変更プログラムを作成したのですが、macのTerminal上で起動すると以下のエラーが出るのに、なぜかWindows上では成功します。strcpy関数の部分を消すとmacでも成功するので、原因はそこだと考えています。なぜmac上だと失敗するのか、また、改善案があれば教えて欲しいです。 ### 発生している問題・エラーメッセージ ``` zsh: illegal hardware instruction ``` ### 該当のソースコード ``` #include #include #include int main(){ char filename[]="database.txt"; FILE *fp; int i; char pass[2][8]; char current_ps[8]="pswrd002"; char new_ps[8]; fp=fopen(filename,"r"); for(i=0;i<2;i++){ fscanf(fp,"%s",pass[i]); } fclose(fp); while(1){ printf("現在のパスワードを入力してください>"); scanf("%s",current_ps); if(strcmp(pass[1],current_ps)==0) break; }//パスワード認証 printf("新しいパスワードを入力してください>"); scanf("%s",new_ps); printf("新しいパスワードは%sとなりました。\n",new_ps); strcpy(current_ps,new_ps); printf("%s",new_ps); return 0; } ``` ### 試したこと windows上での実行(なぜか成功) ### 補足情報(FW/ツールのバージョンなど) 初心者です。
回答: ``` char current_ps[8] = "pswrd002"; ``` 配列のサイズが足りていません。