1. 程式人生 > >關於全域性變數記憶體洩漏的誤報和解決方案

關於全域性變數記憶體洩漏的誤報和解決方案

現象:全域性變數是個類物件,析構的時候會釋放記憶體。但系統會誤報記憶體洩漏。
原因:報告比析構早,釋放的時候已經報告完了。
解決:至少有以下三個解決方案:

1.使用#pragma comment(lib, “xxx.lib”) 而不使用設定裡的“附加依賴項”。
這個具體細節應該是編譯器實現的原因,但至少不誤報了。
測試環境vs2017,測試了一個第三方樣例,一個自己的Demo,結果一致。
(開始報記憶體洩漏,找了半天才發現是誤報,當時有一種罵人的衝動)

2.全域性變數用裸指標,提供初始化反初始化函式(全域性智慧指標沒試過,也不想用)
(這個是我一直的方案)

3.無視之
(you ox you use,反正我不用此方案)

相關推薦

no