gpt4 book ai didi

c++ - 删除指针数组

转载 作者:行者123 更新时间:2023-11-30 03:31:49 27 4
gpt4 key购买 nike

我正在尝试创建一个 AVL 树,我正在使用一个动态指针数组来跟踪哪些节点受到插入的影响。我的问题是删除动态数组是否也会删除指针的内容。代码尚未完成,但我认为它会让您了解我的意思。如果它不起作用,我应该怎么做?提前致谢。

treenode *newnode,**roadnodes,*parent ;
int x=(int)log(numberofnodes)+2,l=0 ;
bool *rightorleft,flag=true ;
newnode=new treenode ;
roadnodes=new treenode*[x] ;
rightorleft=new bool[x] ;
newnode->id=i ;
newnode->hl=0;
newnode->hr=0;
newnode->hm=0;
newnode->left=NULL;
newnode->right=NULL ;
if(head==NULL)
{
delete[] roadnodes ;
delete[] rightorleft ;
numberofnodes++ ;
head=newnode ;
return true ;
}
parent=head ;
while(flag)
{
roadnodes[l]=parent ;
if(parent->id>i)
{
if(parent->left)
parent=parent->left ;
else
{
flag=false ;
parent->left=newnode ;
}
rightorleft[l]=true ;
l++ ;
}
else
{
if(parent->right)
parent=parent->right ;
else
{
flag=false ;
parent->right=newnode ;
}
rightorleft[l]=false ;
l++ ;
}

}
return true ;

最佳答案

如果您询问 delete[] roadnodes; 是否会隐式地 delete roadnodes[0];删除路节点[1]; ...,答案是否定的。绝对不会。您有责任删除它们。正如一些评论中所建议的那样,使用标准容器和智能指针是一种更好的方法。

关于c++ - 删除指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43899158/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com