看乙個物件的佔記憶體大小

2021-07-07 01:20:53 字數 588 閱讀 7531

#pragma pack(8)

#includeusing namespace std;

class a

;class b;

class c;

class d//0

};class e//4 virtual指標 vptr =8 (系統是64位,8*8,故指標位元組數8) 8+8+8=24

};int main(int argc,char**argv)

{ b b;

a a;

c c;

d d;

e e;

cout<<"sizeof a="《在面試中有時會問到某個類或物件所佔記憶體的大小,今天先總結一下,其實這涉及到c++的記憶體布局,等以後有時間好好總結一下,今天就把想到的一些記錄一下:

1.普通的成員函式不會佔記憶體,但是普通的成員變數佔記憶體

2.static的變數和函式都不會佔記憶體。

3.virtual成員函式(包括純虛函式)會佔記憶體,因為會有乙個vptr指向virtual table的原因,所以不管有多少個virtual函式,均只佔乙個sizeof(vptr)=4

4.派生類:需要加上其基類的size

乙個結構體占用記憶體大小的問題

先來看下面的示例 struct demo int main 毫無疑問,都會說,結果為 8 這時我提出乙個問題?請問在32位和64位pc機上分別是多少,或許有些人就有些迷茫了。實際上都等於 8,這時候可能有些人更加疑惑了 實際上 int 型資料在32位 64位都只占用4位元組 下面我們再看乙個例子 s...

關於資料型別佔記憶體大小的總結

計算機中的單位 儲存單位 計算機只有兩種狀態 0和1,而儲存0和1的單位就是bit。1 byte 8 bite 1位元組 8位 1 word 2 byte 1字 2位元組 byte byte,習慣上用 b 是記憶體儲存資料的基本單位。可代表乙個字元 a z 數字 0 9 或乙個符號 等。1字母 1 ...

C 能否獲取乙個物件所佔記憶體的大小

今日,在專案重構的時候忽然想到乙個問題,乙個類哪些成員的增加,會影響乙個類所佔記憶體的大小?c 有沒有辦法知道乙個物件佔多少記憶體呢?第乙個問題 很快想到是類的非靜態的字段 屬性。第二個問題 首先想到的是sizeof 下面開始驗證,首先來驗證值型別,驗證 如下 int size sizeof int...