str.cpy를 사용하여 2 차원 배열을 작성하려고하는데 프로그램이 실패합니다. 코드는 4 개의 배열을 받아서 그 내용을 일치하는 배열에 복사합니다.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 Student {char firstName [20]; char 패밀리 명 [20]; char 코스 [5] [20]; char 성적 [5]; };'- 또는 심지어'struct course {char name [20]; 숯 등급; }; struct student {char firstName [20]; char 패밀리 명 [20]; 구조 코스 과정 [5]};'. –
firstname, familyname, grades 및 courses라는 이름의 데이터 배열은 스택에서 모두 로컬이므로 데이터를 배치하는 모든 연산은 함수가 종료 될 때와 같이 해당 데이터가 '범위를 벗어 났을 때 사라집니다. – user3629249