弹出2d数组的队列

时间:2014-03-07 05:19:03

标签: c++ arrays data-structures queue

我有一个2d数组的队列。

我想看一下数组最顶层条目的元素。数组列表是int **类型的队列。

int** target = arraylist.pop();

是对的。但是,

for (int k = 0; k < cities; k++)
    for (int m = 0; m < cities; m++)
        if (targ[k][m] != 0) <----- segfault here

这是我的最高职能:

template <class T>

T Queue<T>::top()
{
    return data[front];
}

我的队列被声明为

Queue<int**> arraylist;

我知道int **并不一定意味着int [x] [y],但我很想知道为什么会这样,我可以做些什么来将队列的最顶层条目设置为2d数组变量。

1 个答案:

答案 0 :(得分:0)

虽然不在您粘贴的代码中,但我猜您的Queue::push()或您调用Queue::push()的地方的工具会导致此问题。

您是否复制了Queue::push()的工具中的数据?

或者您复制指针并且指向的数据可能已被释放?或者更复杂的是,你多次按下同一个指针,其中一个已被你弹出并释放?