아래 Class를 sizeof로 크기를 재보면 생각했던 것과 다르게 8byte로 측정된다.
변수는 4byte int만 있는데 왜 그런걸까?
그럼 변수값을 모두 없앤 아래 클래스는?
결과는 4byte다.
내가 모르는 4byte 주소값은 어떤값인 것일까?
실제 AClass의 메모리 번지(0x003afcb8)를 찾아보면 4byte의 주소값(0x00037834)과 int a 4byte(0x00000000)가 셋팅되어 있다.
맨 앞 4byte 주소값은 virtual로 선언한 함수 목록을 가르키는 주소 번지임을 알 수 있다.
virtual 함수로 인한 상속시 dynamic binding을 위해서 별도 처리 공간을 잡는 것으로 생각된다.
'C/C++' 카테고리의 다른 글
VC++ Check Memory Leak by _CrtSetDbgFlag (0) | 2014.08.11 |
---|