Re: [問題] 請問一下關於ZeroMemory的用法
※ 引述《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
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章