아래 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
Posted by tlclover
,