關(guān)于64位系統(tǒng)的內(nèi)存占用
是這樣的,我是ubuntu64位的系統(tǒng),測(cè)試過(guò)后,虛函數(shù)表占用8塊內(nèi)存,一個(gè)int占用4塊內(nèi)存.
輸出Circle類(lèi)的長(zhǎng)度,本應(yīng)該是12,但卻輸出了16.有大神能解釋一下為什么么.
開(kāi)始覺(jué)得可能是繼承了Shape類(lèi)的關(guān)系,于是就去掉了繼承的代碼,依舊輸出16.
然后又把虛函數(shù)都注釋掉了,聲明了三個(gè)int,正常輸出12.取消注釋后,輸出了24.又多了4塊內(nèi)存.
但我把數(shù)據(jù)成員全部注釋掉后,只剩虛函數(shù),又確確實(shí)實(shí)是打印的8.
那那4塊內(nèi)存究竟被誰(shuí)占用了,求大神解答,代碼如下
2019-10-08
這應(yīng)該是c語(yǔ)言的內(nèi)存對(duì)齊吧
2018-10-06
空間大小為2的整數(shù)倍,像C語(yǔ)言里的結(jié)構(gòu)體。
2017-08-20
因?yàn)槟阌衯irtual 所以會(huì)創(chuàng)建虛指針表,前4個(gè)內(nèi)存單元存放的是虛指針表