检测到C ++ glibc free():下一个大小无效(快)

时间:2015-03-11 02:17:19

标签: c++ segmentation-fault gdb valgrind glibc

vector<priority_queue<Order, vector<Order>, sellCompare> > buyHeap;
buyHeap.resize(numEqs);

buyHeap[currentOrder.eqId].push(currentOrder);

我正在开发一个项目,当库存订单进入时,我想将订单推送到优先级队列,以便最高的要价位于最高位置(我的sellCompare比较器执行此操作)。该程序按订单运行,并在没有看到另一个订单时完成,因此第三行运行需要多次。

我创建了一个优先级队列的向量,并调整它以适应我正在使用的股票数量,因此每当订单进入某个股权时,我就可以将其推送到适当的优先级队列。

我收到第11个订单后第三行标题中显示的错误,我不知道为什么。我知道这是某种段错误,我发现它是在第三行发生的。但是我已经排除了[]索引作为一个可能的运行 - 结束问题,使用括号中的常量而不是变量来测试它。

这意味着剩下的就是buyHeap PQ正在运行,但我认为这是不可能的。当物品被推上时,PQ是否只是重新分配尺寸?

我更关心因为我尝试过valgrind ./filename和GDB调试而且都没有完成 - 他们都只是坐在那里我必须在终端中手动终止调试。

任何帮助?

0 个答案:

没有答案