在C ++中取消引用NULL指针

时间:2012-07-09 06:10:24

标签: c++ g++ null-pointer

  

可能重复:
  Accessing class members on a NULL pointer

我知道取消引用NULL指针会使程序崩溃或给出未定义的行为。但是跟随程序一直打印This is a car我运行的次数。检查Linux(g ++)和AIX(xlc ++)。

#include <iostream>
using namespace std;

class Car
{
public:
    void display(){ cout << "This is a car" << endl; }
};

int main()
{
    Car *c = NULL;
    c->display();
}

当我为该类添加一个数据成员并尝试打印该值时,程序崩溃。

class Car
{
     int i;
 public:
     void display(){ cout << "This is a car" << i << endl; }
};

因此,似乎可以取消引用NULL指针并调用不访问该类数据成员的成员函数。这真的是一种未定义的行为吗?

0 个答案:

没有答案