레퍼런스 매개변수 메모리 깨짐 현상
글쓴이: yangkuisuk / 작성시간: 금, 2011/11/18 - 4:39오후
kuisuk 번호: 874465 추천:0 / 읽음:0
다음과 같은 함수를 만들었습니다.
void func(object& o) { ......... }
그리고 다음과 같이 함수를 호출 합니다.
object o; o.setX; // 객체에 값 할당 .............. func(o);
그리고 나서 디버깅으로 값을 확인해보면
함수에 호출 되기전에 o의 값은 정상적인데 함수에 들어가서
void func(object& o)<------------이곳을 브레이크 포인트로 잡고 o의 값을 확인해보면 값이 깨져 있습니다. { ......... }
매개변수를 레퍼런스 타입으로 넘기기 때문에 복사생성자는 만들지 않았습니다.
혹시나 해서 만들어도 마찬가지이구요...
무슨 원인때문에 이런 현상이 생길까요? 제 환경은 windows7 개발툴은 Visual Studio2005 입니다. 32비트 기반입니다.
혹시 아시는 분들 있나요? 알려주시면 감사하겠습니다.
Forums:
함수내에서도 깨져 보이나요?
func()내에서 printf 로 값을 한번 찍어보세요.
C#?
C++라면 release mode 에서 최적화 때문에 debugger로 관찰하기가 애매할 수 있긴 합니다만...
Debug 관련 출력을 해보시는게 좋을 것 같네요.
Windows API 는 OutputDebugString, C#은 Debug가 있는 것으로 압니다.
댓글 달기