原文:delete指針以后應賦值為NULL

delete p后,只是釋放了指針中存放的地址中的內存空間。但是指針變量p仍然存在 即指針p本身所占有的內存 ,且p中存放的地址還是原來的地址。 例如: 對一個非空指針delete后,若沒有將p賦為NULL,若再次delete的話,會出現問題。 如下代碼: 在ubuntu . 中使用g 進行編譯無問題,但運行時報錯如下: 意思就是對同一指針變量進行了兩次釋放內存的操作,這是不合法的。 因為第一次 ...

2018-05-20 23:20 0 1570 推薦指數:

查看詳情

指針賦值NULL;是什么意思呢?(轉)

int *p=NULL;這個NULL是什么意思? 網上百度了下,有人說NULL=0;是在頭文件中定義的; 首先要說的是:非堆分配的內存是不需要free的。 再說p=NULL;指針的變化是 p指向了一個地址為0的內存,這就提醒別人不要對這個指針進行解引用的操作 ...

Mon Oct 17 17:25:00 CST 2016 0 7207
給初始化為NULL的結構體指針賦值報錯問題

給初始化為NULL的結構體指針賦值報錯問題 https://bbs.csdn.net/topics/392560720 tmp指向null,使用tmp就會報錯,因為這代表要去0的地址取數據,0地址是不允許訪問的,所以會報錯,換成malloc后,系統會分配可使用的地址給tmp,所以tmp就不會 ...

Sun Apr 05 06:24:00 CST 2020 0 1011
指針delete淺談

指針是一個很神奇的變量,在我看來,以指針為基礎,可以延伸出三個值。 1 指針的地址 2 指針的值 3 指針指向的值 有的人或許認為指針指向的值其實和指針本身並不是直接相關連的。 但是其實這個特性確實我們在編程中經常使用的,所以我就把他加了進來。 在介紹之前,如果您對這里已經足夠 ...

Fri Oct 05 17:59:00 CST 2012 7 2959
使用指針注意的問題

任何位置就賦為NULL,不能讓指針為一個野指針。如下 int *p; p=NULL ; //或者指向一 ...

Sat Apr 07 07:00:00 CST 2012 1 3404
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM