Parasoft错误:应该使用管理资源的对象" x"指针

时间:2012-05-02 13:34:49

标签: c++ pointers binary-search-tree parasoft

我创建了一个二叉搜索树,我的二叉树的每个节点都在一个包含键的结构中设置,并且指向左右节点。

在我的二进制搜索树的复制构造函数中,我调用一个帮助器方法来重复遍历这样的树:

Node* BinaryTree::copyHelper(const Node* other)
{
if(other == NULL)
{
    return NULL; // If there's no Node to copy, return NULL.
}

Node* newNode  = new Node; 

if(newNode)
{
    newNode->name  = other->name;
    newNode->left  = copyHelper(other->left); 
    newNode->right = copyHelper(other->right);
}

return newNode; 
}

标题中提到的错误在上面最后一个if语句的左右指针上。

如果有人能告诉我如何删除它,那将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果您使用智能指针而不是原始指针,则可以绕过警告:

typedef std::unique_ptr<Node> NodePtr; 
NodePtr newNode(new Node);

而不是

Node* newNode = newNode;