这是我的代码
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给出了错误,指出我无法访问所需的内存位置。
答案 0 :(得分:1)
只需在ctor中初始化head
即可。
class LList{
//...
LList() : head(0) {} // or head(NULL) if you prefer
// ...
};
注意: IIRC与== NULL
相比,它被视为同样糟糕的风格,例如== TRUE
......更好(在我不那么谦虚的意见中)风格是{ {1}},但这就是化妆品。所以只是一个注释。