今天qq某大俠問我,為啥他的代碼會crash
char* pdata = new char(14245);
::memset( pdata, 0, 14245 );
我馬上運行代碼,結果果真是Access Violent。
之后試過malloc都沒有問題
隨機我把這段代碼刪除,過了幾分鐘后,我按照記憶,重新寫下代碼
char* pdata = new char[14245];
::memset( pdata, 0, 14245 );
結果不crash了。細細一看
。
。
。
為啥要調用char的構造函數傳入14245的參數呢?這樣只能new出來1個字節,但是memset又寫了14245個字節,不掛才有鬼了
之后問過很多人,基本都沒看出來,可見這個寫法極其騙人