我知道取消引用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指针并调用不访问该类数据成员的成员函数。这真的是一种未定义的行为吗?