小编Bas*_*big的帖子

读取时内存访问异常,“0xFEEFEE{value=???}”

可能的重复:
在 Visual Studio C++ 中,内存分配表示是什么?

对标题感到抱歉,但我真的不知道如何处理这个“value=???”

得到一个带有树迭代器的简单二叉树。迭代器可以用 ++ 或 -- 上下移动

它包含一个值和一个键以及根节点、左节点、右节点。

如果我在树上启动一个迭代器

for (Map::TreeIterator i=tree.begin(); i != tree.end(); i++) {
    std::cout << i.key() << ": " << i.value() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

迭代器调用 begin()

TreeIterator Tree::begin() {
    return TreeIterator(m_root->findFirst());
}
Run Code Online (Sandbox Code Playgroud)

调用 findFirst()

TreeNode* TreeNode::findFirst() {
    if (m_left != NULL) {
        return m_left->findFirst();
    } else {
        return this;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果树包含很多值,那就没问题了。现在我清除树,打印出计数并尝试启动迭代器来查看是否有项目显示它们,无论如何......

尝试调试显示迭代器进入可能为空的树并查找元素。他从树中获取了根节点,这是一个零节点,取出左侧节点(也是一个零节点)并在左侧节点上运行 findFirst 。

在这里,根(零节点)的左节点(零节点)没有左节点。

m_left=??? m_right=??? m_up=???
Run Code Online (Sandbox Code Playgroud)

所以我有默认构造函数,它将所有节点设置为零节点(我应该需要这个吗?它总是默认构造函数,对吧?)

最后,我的问题是我该如何处理这个问题?也许捕获异常?整个事情在内存 xxx 处引发了未处理的异常

感谢您的解答

c++ tree

1
推荐指数
1
解决办法
1199
查看次数

标签 统计

c++ ×1

tree ×1