程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> delete容易出錯的地方

delete容易出錯的地方

編輯:C++入門知識

總結一下delete容易出錯的地方:

   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