因乙個delete引發的思考

2021-10-05 17:32:48 字數 450 閱讀 3835

請看這樣一段**:

class test

~test()

volatile int m_value;

};int main(int argc, char *ar**)

請問這段**如何輸出?可能會有人回答崩了呀,然而實驗多次,程式依舊堅挺,輸出也正確,為啥呢?

我們最主要的問題就在於delete到底做了什麼,釋放記憶體導致是怎麼釋放的,釋放了什麼東西?

部分作業系統在delete了以後,只是通知作業系統這塊記憶體不用了,沒有做任何操作,可能這塊記憶體還歸屬於程序,也可能歸屬於作業系統,記憶體裡面的值乙個沒變,只要這塊記憶體沒被其他的地方申請到,我們就可以正常訪問;一旦被其他的地方給申請了並初始化了,那麼繼續訪問得到的值就是錯誤的;更嚴重的可能引發崩潰,比如置null了等等,這就是大學我們在學習的時候,老師們經常說的未知的行為,就體現在這裡。

乙個事故引發的思考

今天線上服務出現了乙個事故,思考下這個事故,覺得有好幾個地方需要思考。1 對於前端而言,回滾的功能是必須的。前端介面出現了問題,第乙個應該想到的是將 回滾到乙個穩定版本。2 快取和資料庫的使用,需要注意乙個問題,當快取失效的時候,可能會有大併發的請求去訪問資料庫,這個時候資料庫會不會崩潰?如果這個時...

乙個案例引發的思考

今天下午,團隊開了乙個簡短的版本總結會。會上測試經理分析了乙個案例 某子程式在轉測試後發現不能被平台排程,原因是子程式的排程入口跟不符合平台規範。很明顯開發在轉測試前沒有充分自驗證,測試經理提出,後續對跟平台對接的子程式轉測試必須要有將子程式接入平台跑通後的驗證報告和相關checklist,否則不予...

乙個氣泡排序引發的 思考

首先看乙個氣泡排序的 如下 include if 1 void maopao int a 此處形參等同於int a endif intmain int argc,char const ar maopao a for i 0 i sizeof a sizeof int i printf d a i 列...