亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

customer作為隊列元素時不用刪除指針p嗎?

在使用int作為隊列元素時,老師最后一行有delete p;p=NULL;刪除MyQueue指針。然而在用customer作為元素時,老師將這行代碼注釋掉,并且之后也沒有加上。我自己在寫的時候加上發現運行時會報錯關于指針使用不當,請問這是為什么?

正在回答

4 回答

系統按順序應該先刪除customer的內存,然后再是p的內存。而customer的內存是棧實例化的,所以只有執行了return 0;后才會刪除。使用了delete p;會導致系統先刪除queue的內存,順序不對,所以執行出現問題。所以不能加delete p;在結束整個程序后就會自動刪除。我個人見解,刪除內存主要運用在一個程序沒有完結但一個類或函數已經完結的情況下,可以減少內存泄漏。如果整個程序都結束,就不存在內存泄漏的問題了。

0 回復 有任何疑惑可以回復我~
#1

Mr_Tory 提問者

非常感謝!
2018-01-09 回復 有任何疑惑可以回復我~

我也出錯了? 把Customer 改成堆上申請內存? 還是會異常

0 回復 有任何疑惑可以回復我~

我加上了

delete p;

p=NULL;

沒有報錯

0 回復 有任何疑惑可以回復我~

會執行的,當你在請按任意鍵繼續的界面時候,按下任意鍵,他會執行的哦,你仔細檢查一下你的代碼

0 回復 有任何疑惑可以回復我~
#1

Mr_Tory 提問者

他是程序默認執行的嗎?不用自己再寫delete p;嗎?我寫上后就報錯了。
2017-04-17 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

customer作為隊列元素時不用刪除指針p嗎?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號