为什么会有错?error C2059: 语法错误 : “{”,error C2143: 语法错误 : 缺少“;”(在“{”的前面

typedef struct{
int weight;
int parent,lchild,rchild;
}HTNode,*HuffmanTree;

void main()
{
HTNode *p;
*p={0,0,0,0};
cout<<p->weight<<" "<<p->parent<<" "<<p->lchild<<" "<<p->rchild<<endl;
}
出错位置为:*p={0,0,0,0};

#include<iostream>
using namespace std;
typedef struct{
int weight;
int parent,lchild,rchild;
}HTNode,*HuffmanTree;

void main()
{
HTNode *p=new HTNode; //这里要先分配内存
//*p={0,0,0,0}; //这样的赋值只能在定义的时候进行,比如 HTNode pp={0,0,0,0};
//注意.的优先级比*高
(*p).weight=0;
(*p).lchild=0;
(*p).parent=0;
(*p).rchild=0;
cout<<p->weight<<" "<<p->parent<<" "<<p->lchild<<" "<<p->rchild<<endl;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-30
#include<iostream.h>
typedef struct{
int weight;
int parent,lchild,rchild;
}HTNode,*HuffmanTree;

void main()
{
HTNode a[4]={0,0,0,0};
HTNode *p;
p=a;
cout<<p->weight<<" "<<p->parent<<" "<<p->lchild<<" "<<p->rchild<<endl;
}指针P的初始化错了;本回答被网友采纳
第2个回答  2011-10-30
#include<iostream>
using namespace std;
typedef struct
{
int weight;
int parent,lchild,rchild;
}HTNode,*HuffmanTree;

void main()
{
HTNode *p;
HTNode human;
p=&human;
p->weight=0;
p->parent=0;
p->lchild=0;
p->rchild=0;
cout<<p->weight<<" "<<p->parent<<" "<<p->lchild<<" "<<p->rchild<<endl;
}