53.7 질문 있습니다.
, 김 민석님이 작성문제와 동일하게 입력할 시 다음과 같은 오류가 발생합니다.
동적할당 부분에서 오류가 있는것인가요?
전체 코드입니다.
for (int i = 0; i < sizeof(p) / sizeof(struct Person*); i++){
p[i] = malloc(sizeof(struct Person*));
}
(도장_ 관리자님이 수정함 - 원문 제출일: 2020년 10월 9일, 금요일, 오후 8:19)Re: 53.7 질문 있습니다.
, 도장_ 관리자님이 작성메모리 할당과 해제 문제입니다.
해제는 코드가 제시되어 있으니까 문제가 없는 코드일 것이고,
사용자가 제출하는 코드가 할당 코드이니까 할당에 문제가 있다는 뜻이겠지요.
UNIT 53.2에 예제 코드와 비교해보세요.
다른 차이점이 보일 겁니다.
// 구조체 포인터 배열 전체 크기에서 요소(구조체 포인터)의 크기로 나눠서 요소 개수를 구함
for (int i = 0; i < sizeof(p) / sizeof(struct Point2D *); i++) // 요소 개수만큼 반복
{
p[i] = malloc(sizeof(struct Point2D)); // 각 요소에 구조체 크기만큼 메모리 할당
}