程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c++-對內存的釋放本質是什麼?

c++-對內存的釋放本質是什麼?

編輯:編程解疑
對內存的釋放本質是什麼?

對內存的釋放是不是清零?在vc、vs的情況下都是c這種的嗎?那為什麼多次釋放同一塊內存會報錯呢,而且是程序崩潰,想不通,不就是清個零嘛

最佳回答:


不是清零,而是將這塊內存標記為未使用,之所以不清零,是出於性能的考慮。計算機上到處有類似的設計,比如說,你刪除一個文件,並不是真的將刪除的文件填充0,而也是把對應的簇標記為未分配。格式化硬盤也是如此。這也是為什麼刪除了文件只要沒有寫入新的文件你還能將它找回來的原因。
重復釋放內存報錯的原因是因為這些內存已經標記為未分配,就不再有記錄了,所以再次釋放標准庫就會丟出異常。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved