예외가 throw됨: 읽기 액세스 위반입니다. s이(가) 0xCCCCCCCC였습니다.(c언어,구조체,함수)

조회수 12008회

![![이미지][1]][1]

이미지

어찌해야할까여

이미지

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • init_queue 함수에서 q1 을 초기화하고자 하는데, init_queue 에서 메모리 할당해서 (QueueType *) q 에 assign 했지만, 그냥 함수안의 동작으로 끝나고 말아요. main 에서 init_queue 함수가 있거나 없거나 차이가 없어요.

    init_queue 함수 콜에 breakpoint 걸고, 함수 실행 후의 q1의 내용을 확인해 보세요.

    그래서 이후에 enque(&q1, item) 에서 q1의 내용은 0xCCQueueType 크기의 메모리가 꽉 차있게 됩니다. 0xCC는 비주얼스튜디오의 디버그 빌드일 때 초기화되지 않은 변수에 채워넣는 값입니다.

    PS. 코드의 다른 부분에도 오류가 있습니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)