Re: [問題] 請問一下關於ZeroMemory的用法

看板C_and_CPP (C/C++)作者 (Alien)時間17年前 (2009/04/09 15:57), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/5 (看更多)
※ 引述《jijuan (雞卷)》之銘言: : 它的解釋是Fills a block of memory with zeros. : 把一塊記憶體配置為0 : vector<myObj*> object_A; : object_A.resize(10); : 如果我要把這10個物件的pointer都指向0 : vector<myObj*>::iterator it; : it = object_A.begin(); : ZeorMemory(&it, object_A.size()); : 上面的用法正確嗎? 我不太清楚 ZeroMemory 做的是什麼, 但 看來和 memset 為 0 差不多. 要是這樣的話, 千萬不要這樣做 1) object_A 是一個 vector 的 object instance, 亂把 object instance 的整段 memory 設 0 是非常危險的, 你會把很多不該動到的地方 (e.g. virtual function pointer table) 設成 0. 2) 養成好習慣, pointer 請指向 NULL 而不是 0. : for(int i=0; i<10; ++i) : { : object_A.at(i) = 0; : } : 這兩者所做的事是一樣的嗎? 不一樣 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82

04/09 16:56, , 1F
它參數吃 iterator,看來是和 for-loop 一樣?
04/09 16:56, 1F

04/09 17:03, , 2F
他吃的是void*...
04/09 17:03, 2F
文章代碼(AID): #19tQfT8Q (C_and_CPP)
文章代碼(AID): #19tQfT8Q (C_and_CPP)