예외가 throw됨: 읽기 액세스 위반입니다. s이(가) 0xCCCCCCCC였습니다.(c언어,구조체,함수)
조회수 12008회
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
init_queue
함수에서q1
을 초기화하고자 하는데,init_queue
에서 메모리 할당해서(QueueType *) q
에 assign 했지만, 그냥 함수안의 동작으로 끝나고 말아요.main
에서init_queue
함수가 있거나 없거나 차이가 없어요.init_queue
함수 콜에 breakpoint 걸고, 함수 실행 후의q1
의 내용을 확인해 보세요.그래서 이후에
enque(&q1, item)
에서q1
의 내용은0xCC
로QueueType
크기의 메모리가 꽉 차있게 됩니다.0xCC
는 비주얼스튜디오의 디버그 빌드일 때 초기화되지 않은 변수에 채워넣는 값입니다.PS. 코드의 다른 부분에도 오류가 있습니다.
댓글 입력