结构体指针的声明和定义

来源:互联网 发布:帝国cms 二级目录 编辑:程序博客网 时间:2024/05/17 23:19

结构体定义

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;}


0 0
原创粉丝点击