//具有插入功能的查找(非递归)
void BSTree::inst1(Sstudent el)
{
BTreeNode *p,*q;
int tag;
tag=0;
p=root;
while ((p != NULL)&& (tag == 0))
{
q= p;
if (el < p->data)
p=p->lchild;
else if (el > p->data)
p=p->rchild;
else
tag=1;
}
if (tag == 0)
{
p=new BTreeNode(el,NULL,NULL);
if (root==NULL) root=p;
else if (el < q->data) q->lchild= p;
else q->rchild=p;
}
}
刚才在VS2013编译的时候,提示 error C4703: potentially uninitialized local pointer variable 'q' used (22行)。
q的作用范围不是整个函数吗?
1
heliumhgy 2015-01-25 22:40:46 +08:00 via Android
错误是q可能会是一个未初始化的指针啊,如果while没执行,q就没有指向一个合法的内存空间啊,然后else分支里赋值就不行了
|