作者a3785lexx (Alex)
看板EE_DSnP
標題[閒聊] size_t的威能XD??
時間Wed Nov 25 01:17:48 2009
如題....其實這個完全是個題外話XD
話說強者我同學辛勤的測他的BUG時候
我突然發現一件很猛的事情
據說我們在new或new[]的時候系統會塞需要的記憶體大小給
size_t t這個變數...所以我們才可以拿著他去getMem去作甚麼有的沒的
那麼...假如今天我們run ./memTest後就下了這個指令
mtn -a 30000 1
恩,憑各位先進的聰明才智一定一眼就看出來:
這個程式一定會叫說"你太小氣了!"嘛,這個array根本比blockSize還大啊
是的,如各位所想,的確會有error message跑出來
可是呢...
我突然想到,以32-bit machine來說
size_t只有4BYTE這麼大...所以他的能力極限應該是2^16 = 65536
所以...他到底怎麼能夠存超過65536的數字的呢囧?
這實在太威了啊!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.37.108.84
1F:推 hrs113355:4byte 是 2^32.... 11/25 01:31
2F:→ a3785lexx:對也...抱歉...那我一直記得int的範圍是32767~-32768 11/25 01:44
3F:→ a3785lexx:是哪裡來的怪印像......orz 11/25 01:45
4F:→ a3785lexx:剛剛試了一下...突然想起來教授在myStr2Int的時候就設 11/25 01:45
5F:→ a3785lexx:下防線了...所以不可能超過size_t的能力XD 11/25 01:46
6F:推 hrs113355:是因為VB嗎 他的int是2byte XD 11/25 01:49
7F:→ a3785lexx:有可能XD 國中高中都不知道為甚麼先教VB...XD 11/25 02:10
8F:推 timrau:其實standard裡只有保證int"至少"要有16-bit 11/25 07:35