EXC_BAD_ACCESS(代码= 1,地址= 0x16)

时间:2015-02-21 11:12:02

标签: c++ xcode exception

我无法解决这个问题,我试图以各种方式解决它 得到此错误的行是:

void Encoder::generateCodes(const Node &node, const std::vector<bool>& prefix)
{
    if (&node.left() == &HT::NIL and &node.right() == &HT::NIL)//if is a leaf
    {

      *codes[static_cast<unsigned long>(node.key())] = prefix;

    }
    else
    {
        std::vector<bool> leftPrefix = prefix;
        leftPrefix.push_back(false);
        generateCodes(node.left(), leftPrefix);

        std::vector<bool> rightPrefix = prefix;
        rightPrefix.push_back(true);
        generateCodes(node.right(), rightPrefix);
    }
}

我尝试实现霍夫曼编码,此函数将霍夫曼树作为参数,并为每个字符提供二进制代码。 根据我的理解,当编译器尝试调整向量大小以插入新元素bool时会抛出错误。 实际上,如果我查看堆栈上的调用,导致异常的确切行是:

    if (__v.__size_ > capacity())

0 个答案:

没有答案