C++之delete常见错误总结
生活随笔
收集整理的這篇文章主要介紹了
C++之delete常见错误总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、動態分配內存后釋放了一次,再次釋放
1)直接刪除2次
int main() {int *a = new int(50);cout<<*a<<endl;delete a;delete a;return 0; }2)另外一個指針指向分配的內存,然后把這個2個指針都刪除
int* p1 = new int(50); int* p2 = p1; //p2和p1 現在指向同一內存地址 cout << *p1 << endl; cout << *p2 << endl; delete p1; //OK delete p2; //ERROR! p2所指的內存,已通過delete p1而被釋放,不可再delete一次2、刪除是一個普通指針或者不是一個指針
1)刪除的是一個普通指針
nt a = 50; int *p = &a; delete p2) 刪除的不是一個指針
string ss = "chenyu"; delete ss;3、刪除了由系統釋放
總結
以上是生活随笔為你收集整理的C++之delete常见错误总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言之malloc和free总结
- 下一篇: C/C++之函数返回值为指针或者是引用时