作者legnaleurc (CA)
看板C_and_CPP
标题Re: [问题] 请问一下关於ZeroMemory的用法
时间Thu Apr 9 20:17:10 2009
※ 引述《adrianshum (Alien)》之铭言:
: ※ 引述《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
: 是非常危险的, 你会把很多不该动到的地方
传 iterator 的确是不好
不过就vector的状况来说,并没有这麽糟糕:
ZeroMemory( &object_A[0], object_A.size() * sizeof( object_A[0] ) );
基本上是可以用的,如果元素是POD的话
因为vector保证元素的空间有连续性
其他的STL容器无法这麽做
--
自High笔记(半荒废)
http://legnaleurc.blogspot.com/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.146.194.91