结构体定义
typedef struct node
{
int data;
node *lchild;
node *rchild;
node()
{
lchild=NULL;
rchild=NULL;
}
}Node;
第一种情况:RE 运行时出错
int main()
{
Node *p;
p->data=1;
cout<<p->lchild<<" and "<<p->rchild<<endl;
return 0;
}
编译时会有warning
第二种情况:p->lchild随机,但p->rchild一直是0,不知道为什么。。
int main()
{
Node *p=(Node *)malloc(sizeof(Node));
p->data=1;
cout<<p->lchild<<" and "<<p->rchild<<endl;
return 0;
}
第三种情况:
int main()
{
Node *p=new Node; //经过测试好像只有用new生成Node *才会调用node()构造函数,可能是因为new和构造函数都是C++里面的吧
p->data=1;
cout<<p->lchild<<" and "<<p->rchild<<endl;
return 0;
}