作者bnsblue (想當你的天空)
看板EE_DSnP
標題[問題] 再請問一下為什麼我的陣列大小會多4 byte
時間Fri May 2 19:14:07 2008
我遇到一個奇怪的情況
就是我new出來的陣列會比平常的再多4 bytes
就是如下指令
mtn 1 -a 1
reference的執行檔會出來
mtest> mtn 1 -a 1
Calling allocArr...(16)
Calling MemMgr::getMem...(16)
Memory acquired... 0x8058c30
我的會出來
mtest> mtn 1 -a 1
Calling allocArr...(20)
Calling MemMgr::getMem...(20)
Memory acquired... 0x516860
請問有人也遇到相同情況嗎@@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.18.221
1F:→ bnsblue:而且我想順便請問一下大家的S大小是多少呢? 我的是16@@ 05/02 19:16
2F:→ bnsblue:喔喔我猜是工作站是64-bit作業系統的關係? 05/02 19:28
3F:推 fairyflame:我的S是12吧 05/02 19:39
4F:推 ric2k1:64-bit 底下 MemTestObj 仍然是 12 Bytes, 不過我會讓 05/02 20:34
5F:→ ric2k1:memory allocation 大小與 sizeof(size_t) 成倍數. 05/02 20:37
6F:→ ric2k1:所以在 32-bit machine 為 12 = 4*3, 而 64-bit 為 16=8*2 05/02 20:38
7F:→ bnsblue:恩恩瞭解了!謝謝老師! 05/02 23:56