我有一个函数func()
需要一个双指针。如果它指向零,则函数退出(首先检查)。现在没有第二次检查,我得到访问冲突尝试访问mybar
的成员(当我第二次运行该功能时)。这是为什么?如果mybar == NULL
不应该在第一次检查时退出?使用双指针访问冲突
func(Foo **bar)
{
//First check
if(bar== NULL)
return;
Foo *mybar = *bar;
//Second check
if(mybar == NULL)
return;
if(mybar->member != NULL) //Access violation here if I dont have the 'second check'
{
//do stuff
}
delete mybar;
*bar = NULL;
}
那我怎么称呼它:
Foo *bar = NULL;
initialize(&bar);
func(&bar);
func(&bar); //Second time I call it, I get the access violation
显示如何调用函数 –
@claptrap谢谢,我添加了该调用。事实上,当我第二次打电话时它会打击。我想证明它,所以我实际上可以再次调用它,它只是在没有访问冲突的情况下返回。 – tzippy
向你展示* initialize()*函数。 – KBart