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