閲覧ありがとうございます。
- 言語 : C
- コンパイラ : gcc
- コンソール : コマンドプロンプト
下記ソースをコンパイルし、実行すると、マークした行でコンソールが動作停止してしまいます。
C
1#include<stdio.h> 2 3/* 構造体 */ 4typedef struct{ 5 char name[60]; 6 short age; 7 char sex; 8}People; 9 10/* プロトタイプ宣言 */ 11void writeData(People data[]); /* 入力用の関数 */ 12void printData(People data[]); /* 出力用の関数 */ 13 14/* main関数 */ 15int main(void) 16{ 17 People data[3]; /* 構造体変数 */ 18 People *pdata; /* 構造体ポインタ変数 */ 19 20 pdata = data; /* ポインタにセット */ 21 22 writeData(pdata); /* 入力 */ 23 printData(pdata); /* 出力 */ 24 25 return 0; 26} 27 28/* 入力用の関数 */ 29void writeData(People data[]) 30{ 31 short cnt; 32 33 printf("3人の氏名、年齢、性別(0:男性 1:女性)を入力してください。 \n"); 34 for(cnt = 0; cnt < 3; cnt++) 35 { 36 printf("[%d人目] \n", cnt + 1); 37 printf("\t氏名 :", cnt);scanf("%s", data[cnt].name); 38 printf("\t年齢 :", cnt);scanf("%d", &data[cnt].age); 39 printf("\t性別 :", cnt);scanf("%d", &data[cnt].sex); 40 } 41 printf("◆入力完了 \n\n"); 42} 43 44/* 出力用の関数 */ 45void printData(People data[]) 46{ 47 short cnt; 48 49 printf("3人分のデータを出力します。 \n"); 50 for(cnt = 0; cnt < 3; cnt++) 51 { 52 printf("[%d人目] \n", cnt + 1); 53 printf("\t氏名 : %s \n", data[cnt].name); /* ◆この行を実行しようとすると動作停止 */ 54 printf("\t年齢 : %d \n", data[cnt].age); 55 if(data[cnt].sex == 0) 56 printf("\t性別 : 男性 \n"); 57 else 58 printf("\t性別 : 女性 \n"); 59 } 60} 61
コンソールが停止するだけでエラー表示も何もないので、対処方法が分かりません。
このバグの原因は何なのでしょうか?ご教示いただけると幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/10 00:22