1、指標一般在建立的時候都應該初始化。除非你能保證要麼你不會用到這個指標,要麼在你使用之前它以及被被初始化了。如果不初始化,它就是野指標,在debug模式下,vc++編譯器會把未初始化的棧記憶體上的指標全部填成 0xcccccccc ,當字串看就是 「燙燙燙燙……」,會把未初始化的堆記憶體上的指標全部填成 0xcdcdcdcd,當字串看就是 「屯屯屯屯……」;在release模式下,編譯器則會將指標賦隨機值,那麼這個時候訪問可就危險了。在使用qt編寫乙個程式時,就在不經意間在未初始化之前就訪問了,導致程式崩潰,找了半天才找出來,所以,一般還是置空吧。
2、指標賦初值應該賦什麼值呢,以前一般都是0,或者null,但是null其實就是int 0的巨集定義,存在二義性。所以c++11推出了
nullptr,它是有型別的,且僅可以被隱式轉化為指標型別。所以現在初始化的時候一般就用它。
3、記憶體釋放後,一定要立即對指標置空,賦值 nullptr。因為記憶體釋放後,指標若沒有被置空,那麼它指向的位址很可能被其它地方所使用,這個時候訪問也是非常危險的。
PB中使用OSTAROCX注意事項
1 不能安裝支付寶控制項 阿里旺旺 經驗證安裝支付寶控制項後,控制項無法註冊。或在新增控制項時pb崩潰。2 保持註冊控制項的ocx位置固定。如果注成功後原ocx位置變動或刪除,可能導致控制項在pb中不好使。3 將pb可執行檔案設定為以管理員方式執行 win7 8 註冊控制項時也請以管理員執行,x64...
開發中使用RabbitMQ的注意事項
使用訊息佇列處理訊息的時候,我們可能會遇到以下問題 訊息處理失敗 訊息體本身有誤 訊息重複處理 訊息丟失 對於訊息處理失敗,有可能有由於網路波動導致的資料處理異常,待網路穩定時訊息就會正常處理,對於這種處理失敗,我們應該繼續嘗試去處理訊息。訊息體本身有誤,這會導致訊息連續處理失敗,占用較多的資源,寫...
Hive中使用sql的注意事項
一 別名的使用 1 定義別名 columna as x 不需要使用單引號 2 使用別名 不與where同時使用 花式報錯 有說hive不支援where後使用別名 二 group by select m.makename sum c from select t.makeid as id count o...