以下の3名の名前、年齢、性別を入力し、表示させるプログラムを実行すると、
一人目の性別の番号を入力したときに segmentation fault が出てしまいます。
確保していないアドレス領域を使おうとしている?とは思えないのですが、、、
このプログラムの問題点をご教授頂きたいです。
C
1//3名の名前、年齢、性別を入力し、表示させるプログラム 2 3#include<stdio.h> 4#include<string.h> 5 6typedef struct{ 7 char name[64]; 8 int age; 9 int sex; 10 11} profile; 12 13void profile_scan(profile data[]); 14void profile_print(profile data[]); 15 16int main(void) 17{ 18 profile data[3]; 19 20 profile_scan(data); 21 22 profile_print(data); 23 24 return 0; 25} 26 27void profile_scan(profile data[]) 28{ 29 int i; 30 for (i=0;i<3;i++) { 31 printf("名前: "); 32 scanf("%s",data[i].name); 33 printf("年齢: "); 34 scanf("%d",data[i].age); 35 printf("性別(男性-1,女性-2): "); 36 scanf("%d",data[i].sex); 37 } 38 return; 39} 40 41void profile_print(profile data[]) 42{ 43 44 int i; 45 for (i=0;i<3;i++) { 46 printf("名前:%s\n",data[i].name); 47 printf("年齢:%d\n",data[i].age); 48 if (data[i].sex == 1) { 49 printf("男性\n"); 50 } else { 51 printf("女性\n"); 52 } 53 } 54 return; 55}
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/23 04:44