關於memset初始化結構被濫用的問題

2021-04-23 16:42:19 字數 453 閱讀 4812

(

參見函式

bool cpageformctrl::loadtheme()

m_ppagedata = new pagedata[m_nnumofpages];

//memset(m_ppagedata, 0, m_nnumofpages * sizeof(pagedata));

注意:由於

pagedata

使用了std::vector

,所以此處不能使用這種初始化方法,否則會導致破壞

vector

的完整性

這種錯誤往往不能在

debug

版本中被正確的發現,而在

relase

版本中又很難找到原因。

切記這種教訓!

切記:對於複雜結構(直接或間接或其成員含有建構函式的結構),不要使用

memset

進行初始化!

memset初始化結構體

memset可以方便的清空乙個結構型別的變數或陣列。如 struct sample struct 對於變數 struct sample strcut sttest 一般情況下,清空sttest的方法 sttest.csname 0 0 sttest.iseq 0 sttest.itype 0 用me...

關於memset初始化動態陣列

今天在刷題的時候想使用複習一下動態陣列的使用,就建了乙個,結果執行的時候出了一些問題,就是那個貌似陣列沒有被初始化,所以我就測試了一下,如下 int main int n 10 int degree1 new int n memset degree1,0,sizeof degree1 for int...

memset初始化陣列

memset初始化陣列 結構體也可初始化 不過我在此處並未對結構體初始化.memst按位元組進行初始化,可以選擇將陣列初始化為0或初始化為 1 include include include include include using namespace std int main include i...