customer作為隊列元素時不用刪除指針p嗎?
在使用int作為隊列元素時,老師最后一行有delete p;p=NULL;刪除MyQueue指針。然而在用customer作為元素時,老師將這行代碼注釋掉,并且之后也沒有加上。我自己在寫的時候加上發現運行時會報錯關于指針使用不當,請問這是為什么?
在使用int作為隊列元素時,老師最后一行有delete p;p=NULL;刪除MyQueue指針。然而在用customer作為元素時,老師將這行代碼注釋掉,并且之后也沒有加上。我自己在寫的時候加上發現運行時會報錯關于指針使用不當,請問這是為什么?
2017-04-15
舉報
2017-12-26
系統按順序應該先刪除customer的內存,然后再是p的內存。而customer的內存是棧實例化的,所以只有執行了return 0;后才會刪除。使用了delete p;會導致系統先刪除queue的內存,順序不對,所以執行出現問題。所以不能加delete p;在結束整個程序后就會自動刪除。我個人見解,刪除內存主要運用在一個程序沒有完結但一個類或函數已經完結的情況下,可以減少內存泄漏。如果整個程序都結束,就不存在內存泄漏的問題了。
2018-07-27
我也出錯了? 把Customer 改成堆上申請內存? 還是會異常
2017-04-25
我加上了
delete p;
p=NULL;
沒有報錯
2017-04-16
會執行的,當你在請按任意鍵繼續的界面時候,按下任意鍵,他會執行的哦,你仔細檢查一下你的代碼