안녕하세요.. 둘리님의 답변 고맙습니다.
추가적인 질문이 있는데요.
소스는 다음과 같습니다.
AnsiString Str;
BYTE buf[32];
Str = "123";
strcpy(buf, Str.c_str());
궁금한 점은 다음과 같습니다.
1. AnsiString Str;
이라고 선언하면 Str은 포인터로 선언되는 되나요?
2. Str.c_str()는 무슨 뜻인지요?
그리고 Str.c_str()의 크기는 어떻게 되나요?
둘리.CSIEDA 님이 쓰신 글 :
: C/C++ 프로그래밍에서 pointer 를 사용하는 프로그래밍인경우 가끔 만나는 오류죠.
: 결론은 "딱히 잘못한것이 없는" 이 아니라 "어딘가 잘못된 부분이 있는" 입니다.
:
: Access violation 이라는 것은 특정한 메모리 주소를 access (read/write 겠죠) 하려는데 해당 주소가
: 가르키는 위치가 메모리를 사용하기 위하여 할당이 되어 있지 않다는 것이죠.
:
: 또한 아래의 메시지로 봐서 0000000 인것으로 봐서 전혀 메모리를 할당 내지는 연결 하지 않으시고 해당 메모리를
: 호출한 경우 입니다.
:
: 코드를 보지 못하는 관계로 정확하게 어느부분인지 말씀드릴수가 없군요.
:
: 소스코드를 다시한번 살펴보시거나 Debug trace 모드로 추적하셔서 찾아보세요..
:
: CodeGuard (전 잘 쓰지 않습니다만) 그것으로 컴파일 해보시는것도 좋을듯 합니다.
:
: 잘 찾으시길 바랄께요..
:
:
: 아~자~~! 님이 쓰신 글 :
: : 코딩 중에 Run 실행히
: : 가끔 다음과 같은 메세지가 출력됩니다.
: : "Access violation at address 008CD120 in module 'vclide60.bpl'. Read of address 00000000"
: :
: : 딱히 잘 못 한 것 없는 것 같은데, 왜 이런 메시지가 뜨는지 궁금합니다.
: :
: :
: : 즐거운 하루 되세요...
: : 아~자~~!
|