剛好在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 入隊列了嗎?