作者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
1F:推 littleshan:它参数吃 iterator,看来是和 for-loop 一样? 04/09 16:56
2F:→ akasan:他吃的是void*... 04/09 17:03