심사문제 53.7
, LIMON l님이 작성p[i] = malloc(sizeof(struct Person*));
문의한 코드는 삭제합니다.
대체 어디가 문제인걸까요...visual studio 에서도 디버깅오류 뜨고...
(도장_ 관리자님이 수정함 - 원문 제출일: 2019년 8월 7일, 수요일, 오전 4:45)
Re: 심사문제 53.7
, 도장_ 관리자님이 작성포인터 타입은 해당 플랫폼의 워드 크기를 따라갑니다. 32비트 시스템에서는 32비트(4바이트), 64비트 시스템에서는 64비트(8바이트).
struct Person은 Person 구조체의 메모리 크기를 차지하고,
struct Person*은 해당 플랫폼의 포인터 크기를 차지합니다. 보통 4 아니면 8입니다.
Unit 53.2의 struct_pointer_array.c 예제를 잘 살펴보세요.
즉, 4바이트를 할당하고, 34바이트짜리 struct Person 데이터를 쓰려고 하면 30바이트를 초과하니 문제가 됩니다.