作者adrianshum (Alien)
看板C_and_CPP
標題Re: [問題] 請問一下關於ZeroMemory的用法
時間Thu Apr 9 15:57:16 2009
※ 引述《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
推 littleshan:它參數吃 iterator,看來是和 for-loop 一樣? 04/09 16:56
→ akasan:他吃的是void*... 04/09 17:03