[問題] delete [] 怎麼知道size ?

看板C_and_CPP (C/C++)作者 (pass the exam)時間16年前 (2009/07/19 11:01), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/1
如題, 這問題困擾了我一陣 在Inside C++ object model是說在每個element中加一個word代表size 可是我用VC++來試 sizeof intArray[0] 還是 4 不像有加任何資訊的樣子,所以想請問看看 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.50.53.72

07/19 11:04, , 1F
那個資訊有辦法被取出來嗎? 一個int的大小本來就是4..
07/19 11:04, 1F

07/19 11:15, , 2F
sizeof是編譯器去算的,你程式都還沒執行他就算完了。而且觀察
07/19 11:15, 2F

07/19 11:16, , 3F
runtime時記憶體位址,也看不出size是跟intArray放一起的跡象
07/19 11:16, 3F

07/19 11:17, , 4F
應該是new時紀錄在別的地方,delete時依造指標再去查size
07/19 11:17, 4F

07/19 11:17, , 5F
打錯,依照
07/19 11:17, 5F

07/19 11:18, , 6F
(unsigned)((unsigned*)p - 1) 印象中是這樣
07/19 11:18, 6F

07/19 11:19, , 7F
我寫錯了= =
07/19 11:19, 7F
文章代碼(AID): #1AOeobRA (C_and_CPP)
文章代碼(AID): #1AOeobRA (C_and_CPP)