簡體   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