ubuntu c++下一段不太復雜的程序,出現stack smashing detected錯誤。精簡,再精簡后,發現錯誤居然是這樣的:
CDBHelper::CDBHelper()
{
//ctor
m_pSTM=nullptr;
m_pConnection=nullptr;
兩個類的指針,如果初始化,就會出現上述錯誤。
改:
注釋全部------錯誤消失
注釋第一個,初始化第二個--------錯誤消失
兩個都初始化--------錯誤出現
改為:
private:
CConnection* m_pConnection;
CMysqlStatement* m_pSTM_0;
CMysqlStatement* m_pSTM;
---------即,在類的頭文件中,添加一個不用的變量后
兩個都初始化(不用變量不管,不初始化)---------錯誤消失
這樣也不會出現錯誤: