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