pwsusc10   4년 전

8번째 줄과 9번째 줄에서 voca를  malloc으로 메모리를 할당하면 런타임 에로가 뜨고 배열로 할당하여 제출하면 맞다고 뜹니다.
그 이유를 잘 모르겠습니다.
malloc은 힙에 배열은 스택에 쌓이는 것으로 알고 있는데 그것이 왜 런타임에러와 정답으로 다르게 판정되는지 궁금합니다.
그리도 28번째 줄에 'alphabet'에 쓰는 동안 잘못된 데이터를 읽고 있으며 버퍼 오버런이 발생한다는 경고가 나오는데 왜 이런 경고가 발생하는지 잘 모르겠습니다,,,

djm03178   4년 전

잘 보시면 malloc으로는 10만 바이트를 할당받고 있습니다.

그리고 100만으로도 실제로는 부족한데 운이 좋아서 통과된 것입니다. 문자열의 끝에는 널 문자가 들어가기 때문입니다.

pwsusc10   4년 전

아하 그러면 voca를 저장하는 방법은 상관이 없고 제가 할당한 공간이 작아서 런타임에러가 난건가요??

djm03178   4년 전

그렇습니다.

댓글을 작성하려면 로그인해야 합니다.