繁体   English   中英

为什么NULL指针不起作用?

[英]Why doesn't NULL pointer work?

这是我的代码

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给我错误,提示我无法访问所需的内存位置。

只需在ctor中初始化head就可以了。

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

注意: IIRC与== NULL相比被认为是同样糟糕的样式,例如== TRUE ... if(!head)样式(在我看来不是很卑鄙)越好,但这就是化妆品。 因此,请注意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM