剛好在10分鐘的那個位置出錯了。
剛好在10分鐘的那個位置出錯了。 Customer的構造函數: Customer::Customer() { ????m_strName?=?""; ????m_iAge?=?0; } Customer::Customer(string?name,?int?age) { ????m_strName?=?name; ????m_iAge?=?age; } Dequeue()代碼: bool?MyQueue::Dequeue(Customer?&element) { ????if(QueueEmpty()) ????{ ????????cout?<<?"Queue?is?Empty.?No?more?actions?needed."?<<?endl; ????????return?false; ????} ????else ????{ ????????element?=?m_pQueue[m_iHead]; ????????m_iHead++; ????????m_iHead?=?m_iHead?%?m_iQueueCapacity;?//回到第一個位置; ????????m_iQueueLen--; ????????return?true; ????} } 然后執行代碼: Customer?c4("",0); Customer?c5; p->Dequeue(c4);?//c4,?c5都報錯。 在執行p->Dequeue(c4)時,不管怎么樣都會出現“程序已經停止運行”的那個錯誤提示框,然后返回值是: Process?terminated?with?status?-1073741819?(0?minute(s),?5?second(s))。 但使用c4.printInfo()可以正常獲得隊列的那個值,后續再遍歷也是對的。
感覺整個代碼都是完全搬下來的了,哪兒沒對?
2016-12-10
應該是說改成delete p就對了。
2016-12-10
我自己找到原因了,我在后面直接執行了delete []p操作,改用清除隊列的方法之后就好了。
2016-12-07
c4,c5 入隊列了嗎?