为了账号安全,请及时绑定邮箱和手机立即绑定

刚好在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()可以正常获得队列的那个值,后续再遍历也是对的。

感觉整个代码都是完全搬下来的了,哪儿没对?

正在回答

3 回答

应该是说改成delete p就对了。

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

我自己找到原因了,我在后面直接执行了delete []p操作,改用清除队列的方法之后就好了。

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

c4,c5 入队列了吗?

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

王业 提问者

谢谢,此时执行出队操作。不需要入队。
2016-12-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

刚好在10分钟的那个位置出错了。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信