C++ 二维数组的弹出队列
我有一个二维数组队列 我想看看数组最上面的条目的元素。数组列表是int**类型的队列C++ 二维数组的弹出队列,c++,arrays,data-structures,queue,C++,Arrays,Data Structures,Queue,我有一个二维数组队列 我想看看数组最上面的条目的元素。数组列表是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 for(int k=0;k
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
for(int k=0;k 如果(target[k][m]!=0)虽然不在您粘贴的代码中,我想可能是您的Queue::push()
的实现或您调用您的Queue::push()的位置造成的
您是否复制了Queue::push()
工具中的数据
或者你复制了一个指针,而被指向的数据可能已经被释放了?或者更复杂的是,您多次按下同一个指针,其中一个指针被您弹出并释放?您确定没有越界,或者您的数组在一开始就正确初始化了吗?我检查了k和m是否越界。他们不是。我使用new初始化了我放入队列的2d数组和临时targ数组。我怀疑只有这4行代码,任何人都不能肯定地回答你的问题。请构造一个链接,并将其发布。
template <class T>
T Queue<T>::top()
{
return data[front];
}
Queue<int**> arraylist;