38.7 단위행렬만들기에 대한 질문입니다.
, 김 경환님이 작성비주얼 스튜디오에선 오류없이 잘 실행되는데, 온라인 시험을 했을때는 오류가 발생합니다. 어떤 부분에서 문제가 발생하는 것인지 모르겠습니다.
(도장_ 관리자에 의해 편집됨 - 원문 제출일 2017년 9월 18일, 월요일, 오전 1:04 )
회신: 38.7 단위행렬만들기에 대한 질문입니다.
, 도장_ 관리자님이 작성화면 캡처로 문의한 코드가 아닌 심사를 시도한 마지막 코드를 기준으로 설명합니다.(화면 캡처의 코드도 동일 증상)
malloc 함수로 할당하는 메모리 공간이 오염되고 있습니다. 즉, Heap Corruption(힙 오염)이 발생합니다. 원인은 memset 함수입니다. int *이 가리키는 공간은 int가 저장되는 곳이므로 int로 초기화해야 합니다.
memset(matrix[i], 0, sizeof(int *) * n);
이 부분을 다음과 같이 수정합니다.
memset(matrix[i], 0, sizeof(int) * n);