野指针问题
Dong 2003-09-15 12:45:10 #include <iostream.h>
class Base
{
public:
Base(void){cout<<"create"<<endl;}
~Base(void){cout<<"destroy"<<endl;}
void func(int i){cout<<"i="<<i<<endl;}
};
void func1(void)
{
Base *pb=NULL;
{
Base b;
pb=&b;//注意b的生命周期
}
pb->func(1);//pb已经成为野指针
}
int main(int argc, char* argv[])
{
func1();
return 0;
}
//结果的输出为:
create
destroy
i=1//这里的输出是不可能的,因为b对象已经被析构了,但却能正确输出,为什么?