私はオンラインで見つけたランダムなプロジェクトを完成させて自分自身を教えようとしていますが、ちょっとした問題に遭遇しました。現在学習中のポインタ。 char型のポインタ配列のインデックスにユーザーが入力した値を正しく格納するにはどうすればよいですか?ポインタインデックスに値を格納しますか?
int i, numberPeople = 5;
char **firstName = (char**) malloc(numberPeople*sizeof(char));
char **lastName = (char**) malloc(numberPeople*sizeof(char));
double *scores = (double*) malloc(numberPeople*sizeof(double));
// allocating space for each individual person
for (i = 0; i < numberPeople; i++) {
firstName[i] = (char*) malloc(MAXIMUM_DATA_LENGTH*sizeof(char)); // MAXIMUM_DATA_LENGTH = 50
lastName[i] = (char*) malloc(MAXIMUM_DATA_LENGTH*sizeof(char));
scores[i] = *(double*) malloc(1*sizeof(double));
}
// begin user input for each person
for (i = 0; i < numberPeople; i++) {
printf("Person #%d \n\n", i + 1);
printf("First Name: ");
scanf("%s", firstName[i]);
printf("Last Name: ");
scanf("%s", lastName[i]); // crashes on person[2] ==> EXC_BAD_ACCESS (EXC_I386_GPFLT)
printf("Score: ");
scanf("%lf", &scores[i]);
printf("\n\n");
}
person [2]のlastNameを入力すると、私のプログラムは常に停止/クラッシュします。このエラーは - >"EXC_BAD_ACCESS(EXC_I386_GPFLT)"です。ここで
は、あなたのデバッガを使用することを学びます。サイドノート:この種のプロジェクトには 'structs'を使う必要があります。 –