为什么NULL指针不起作用?

时间:2012-03-20 21:46:27

标签: c++ null

这是我的代码

class LList{
struct Elem{int data;Elem *next;};     
Elem *head;
public:


void Push(int dat){
  if(head==NULL){
    head=new Elem;
    head->data=dat;
    head->next=NULL;
  } else {
    // ......
  }
}

但是当我使用它时,它不起作用。问题是它永远不会发现指针为NULL,它应该是NULL。即使我在构造函数中为指针指定NULL也不起作用。 Visual Studio给出了错误,指出我无法访问所需的内存位置。

1 个答案:

答案 0 :(得分:1)

只需在ctor中初始化head即可。

class LList{
  //...
  LList() : head(0) {} // or head(NULL) if you prefer
  // ...
};

注意: IIRC与== NULL相比,它被视为同样糟糕的风格,例如== TRUE ......更好(在我不那么谦虚的意见中)风格是{ {1}},但这就是化妆品。所以只是一个注释。