• 締切済み

C言語について

#include <stdio.h> struct syoukai{ int no; char name[5]; }; int main(void) { struct syoukai mine = {3, "aaaaa"}; int cmdID ; printf("コマンドを入力してください\n"); scanf("%d\n",cmdID); if(cmdID == 1) printf("%d\n",syoukai.no, syoukai.name); } これをコンパイルして実行すると Segmentation fault とエラーになってしまい原因がわかりません 教えていただけますか?

みんなの回答

  • maesen
  • ベストアンサー率81% (646/790)
回答No.1

>scanf("%d\n",cmdID); scanfの格納可変個引数(2番目以降の引数)はポインタ(領域のアドレス)なので scanf("%d\n",&cmdID); あと、Segmentation faultの原因ではないですが、 >struct syoukai mine = {3, "aaaaa"}; char配列を5で取っているが、初期化も5文字でヌル文字の考慮が無いので配列を大きくするか、文字列を短くするかしないと。

関連するQ&A