剛好在10分鐘的那個(gè)位置出錯(cuò)了。
剛好在10分鐘的那個(gè)位置出錯(cuò)了。 Customer的構(gòu)造函數(shù): 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;?//回到第一個(gè)位置; ????????m_iQueueLen--; ????????return?true; ????} } 然后執(zhí)行代碼: Customer?c4("",0); Customer?c5; p->Dequeue(c4);?//c4,?c5都報(bào)錯(cuò)。 在執(zhí)行p->Dequeue(c4)時(shí),不管怎么樣都會(huì)出現(xiàn)“程序已經(jīng)停止運(yùn)行”的那個(gè)錯(cuò)誤提示框,然后返回值是: Process?terminated?with?status?-1073741819?(0?minute(s),?5?second(s))。 但使用c4.printInfo()可以正常獲得隊(duì)列的那個(gè)值,后續(xù)再遍歷也是對(duì)的。
感覺整個(gè)代碼都是完全搬下來的了,哪兒沒對(duì)?
2016-12-10
應(yīng)該是說改成delete p就對(duì)了。
2016-12-10
我自己找到原因了,我在后面直接執(zhí)行了delete []p操作,改用清除隊(duì)列的方法之后就好了。
2016-12-07
c4,c5 入隊(duì)列了嗎?