[英]Debug assertion failed: invalid iterators
我当前正在使用模拟器,并且在调试运行时遇到以下错误:表达式:向量不兼容的迭代器
代码如下:
class Network {
private:
vector<Node*> nodes;
....
void parse_config(void);
....
};
在parse_config方法中,我有一个序列会产生错误。 就是这个:
if(nodes.empty()) // add the first node to the network
{
Node current(regex_d[1]); // create current(first src) node
Node *acurrent = ¤t;
Node next_hop(regex_d[2]); // create the node we immediately send to
Node *anext_hop = &next_hop;
acurrent->add_next_hop(anext_hop);
acurrent->add_n_vchannels(regex_d[5]);
nodes.push_back(acurrent); // <== error
nodes.push_back(anext_hop); // <== here as well
}
有解决方法吗? 任何帮助/建议/参考将不胜感激。
塞比
您的指针指向堆栈对象。 尽管这在您的代码中并不明显,但很有可能在节点向量中有一些已被回收的指针。 在上面:
节点*当前=新节点(regex_d [1]);
至少会使内存问题更准确。
至于您遇到的问题,可能是内存位置被用于其他用途,导致指针指向与Node完全不同的对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.