[英]warning for not using free() malloc
GCC內置了哪些安全措施來檢查內存泄漏? 如果是這樣,我該如何使用它們? 當我使用“gcc -Wall -o run run.c”進行編譯時,編譯器似乎並不關心在代碼末尾是否釋放了任何已分配的堆空間。 我在Google上找不到任何簡單的修復方法。
非常感謝你的時間。
編輯:谷歌搜索確實指向Valgrind和其他工具。 但我很好奇為什么編譯器無法解決這個問題。 作為一個新手,檢查每個“malloc”是否具有與之關聯的“免費”似乎是一項非常簡單的任務。
有兩種方法可以分析問題的代碼 - 靜態分析和運行時分析。 靜態分析讀取代碼 - 這是編譯器真正做得很好的。 代碼問題的運行時分析發生在代碼鏈接到另一組庫時,這些庫可以看到代碼在監視下運行時實際執行的操作。 查找內存泄漏對於靜態分析很困難,但對於運行時分析包則不然。
其他運行時分析就像代碼覆蓋一樣 - 代碼的所有部分都運行了嗎? gcov這樣做,就像valgrind和電柵欄一樣尋找泄漏等記憶問題。
所以,不,沒有真正好的編譯器保護措施來測試內存泄漏。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.