私はstr.cpyを使用して2次元配列を作成しようとしていますが、プログラムは失敗します。コードは4つの配列addを受け取って、その内容を一致する配列にコピーします。C - 2次元配列にstrcpyを使用するには?
int InsertStudent(char *firstName, char* lastName, char* dynCourses, char *dynGrades,
char firstNames[50][20],
char familyNames[50][20], char courses[50][5][20],
char grades[50][5])
{
int set,
int cset = 0;
for (set = 0; set <= (50); set++)
{
if (firstNames[set][cset] == '\0')
{
strcpy(firstNames[set][cset], firstName);
strcpy(familyNames[set], lastName);
for (cset = 0; cset <= 5; cset++)
{
strcpy(courses[set], dynCourses);
strcpy(grades[set], dynGrades);
}
}
}
return 0;
}
structを見ましたか?あなたはそれをもう少しオブジェクト指向にすることができます。 –
構造についてまだ学んだことがありますか?おそらくそうではありません。あなたの引数リストが構造体型の単一の配列を叫ぶためです。 'struct Student {char firstName [20]; char familyName [20];チャー・コース[5] [20];チャーグレード[5]; }; ' - あるいは、' struct course {char name [20];チャールグレード; };構造体Student {char firstName [20]; char familyName [20];構造コース[5]}; '。 –
firstname、familyname、grade、およびcoursesという名前のデータ配列はスタック上ですべてローカルなので、データを配置する操作は、そのデータが関数の終了時と同じように「範囲外」になると消えます。 – user3629249