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

看板C_and_CPP (C/C++)作者 (CA)時間16年前 (2009/04/09 20:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
※ 引述《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
文章代碼(AID): #19tUT80w (C_and_CPP)
文章代碼(AID): #19tUT80w (C_and_CPP)