71.9 심사문제 관련 질문이 있습니다.
, 푸 푸님이 작성심사문제 71.9를 보면 main에서 선언된 buffer에 words.txt을 받은 문자열을 읽어서 넣어줘야 되는데,
*getData함수에는 buffer의 주소값을 줄 수 있는 parameter가 없습니다.
이에 내부에서 다른 buffer를 선언하면 문제 특성상 외부에서 free를 할 수 없어 heap corruption으로 error가 발생합니다.
어떻게 해야 getData에서 main함수에서 선언된 buffer에 접근할 수 있는지 hint 좀 주실 수 있는지 요청하고 싶습니다.
제가 작성한 code는 아래와 같습니다.
char *getData(int offset, int size, int *count, FILE *fp)
{
문의한 코드는 삭제합니다.
memset(buff, 0, sizeof(size + 1));
}
항상 도움에 감사드립니다.
(도장_ 관리자님이 수정함 - 원문 제출일: 수요일, 10 2월 2021, 5:31 오전)
Re: 71.9 심사문제 관련 질문이 있습니다.
, 도장_ 관리자님이 작성실행했을 때 결과는 나와도 이러한 예외가 발생하면 제대로 작성된 코드가 아니므로 심사를 통과할 수 없습니다.
결과가 나오지만, 프로그램이 오류로 종료됩니다. F11로 단계별로 보면 fclose 함수에서 문제가 되는데, 이는 메모리 할당과 해제 부분을 살펴봐야 합니다.
getData 함수 부분의 작성이 문제가 됩니다.
연습문제 71.6을 보면
3번의 정답 코드와 현재 작성된 코드와 비교해보세요.