我有一个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