포인터 배열에서 리터럴 문자를 대입하는 문제.......
글쓴이: dltkddyd / 작성시간: 수, 2013/04/24 - 12:24오후
const char* forbidden[3]; forbidden[0]="golden"; forbidden[1]="up"; forbidden[2]=NULL;
위와 같이 할 경우에 메모리는 다음과 같은 구조를 이룬다고 생각하는데요
1번 2번
forbidden ---> forbidden[0] -->"golden"
forbidden[1] --> "up"
forbidden[2] NULL
여기서 1번에 해당하는 forbidden[0], forbidden[1], forbidden[2] 라는 심벌(심벌이라는 표현이 정확한지는 모르겠지만)은 동적으로 할당된 배열이 아니죠? 그리고 forbidden[0], forbidden[1], forbidden[2]가 가리키는 메모리는 동적으로 할당되어야 하지만 위에서처럼 리터럴 문자를 받을 수도 있다고 생각하는데. 디버깅해보면 forbidden[0], forbidden[1] Ptr이 잘못되었습니다라는 오류가 계속 출력됩니다. 컴파일을 제대로 되지만요. 무엇이 문제인가요?
Forums:
forbidden[0], forbidden[1]이 아니라
forbidden[2] Ptr이 잘못되었습니다라고 나오네요...
본인 맞습니다.
인증샷
우헤헤헤... 로 대신합니다.
문제 없습니다.
0X00000000은 NULL 이자, bat ptr이라고 표시되는것 같네요. 문제는 없어보입니다.
전체 코드, 전체 에러메시지.
전체 코드, 전체 에러메시지.
기왕 쓰는거 전체 코드와 전체 에러메시지가 있어야
기왕 쓰는거 전체 코드와 전체 에러메시지가 있어야 답변이 가능합니다 라고 몇자 더 적어주시죠.
댓글 달기