程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> delete釋放空間時出錯的原因

delete釋放空間時出錯的原因

編輯:關於C++

int *a=new int[10];

......

delete []a;

----------------------------------------------------------

當後面delete []a;出現錯誤的情況大致有:

1.數組的首地址a被你有意無意更改了,如:a++之類的;

2.變量的作用域問題,如:你是在一個函數體中new的,卻在另一個函數體中delete,這時的a變量已經失效了,這時delete會出現a為不認識的標識符的錯誤;

3.先前已經delete過一次了,不可以delete兩次;

4.內存訪問越界,VC分配內存,除了分配你需要的內存空間外還會分配一些管理單元,就在你分配空間的上界和下界,比如內存邊界標志(0xFDFDFDFD),如果是數組在上界會記錄數組元素的個數,你要是修改了這些管理信息,delete的時候就會報錯。

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