c++结构体全局变量的问题

定义一个结构体structTree_Node{charcolor;intkey;structTree_Node*left;structTree_Node*right;st... 定义一个结构体
struct Tree_Node
{
char color;
int key;
struct Tree_Node *left;
struct Tree_Node *right;
struct Tree_Node *p;
};

然后想定义一个NILL表示叶子节点,作为全局变量。
Tree_Node *NILL;
可是无法给NILL赋值,可能方法不对,求教
展开
 我来答
戴静柏0Ep
2012-01-06 · TA获得超过1796个赞
知道小有建树答主
回答量:426
采纳率:0%
帮助的人:782万
展开全部
static Tree_Node *NILL=(Tree_Node*)malloc(sizeof(Tree_Node));
应该是这样的吧
static struct Tree_Node *NILL=(struct Tree_Node*)malloc(sizeof(struct Tree_Node));
表示是结构体
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
slatop
2012-01-06 · TA获得超过1390个赞
知道小有建树答主
回答量:381
采纳率:100%
帮助的人:431万
展开全部
Tree_Node *NILL;
是一个指针,而并非一个实体,你是没办法赋值的,你得为这个指针指定一个实体的结构对象才行
追问
static Tree_Node *NILL=(Tree_Node*)malloc(sizeof(Tree_Node));
NILL->color='B';

C:\Program Files\Microsoft Visual Studio\MyProjects\exam2\main.cpp(14) : error C2143: syntax error : missing ';' before '->'

这种报错怎回事
追答
NILL->color='B';
要写在一个函数中,或是main或winmain函数中,你写在全局区了吧

有问题再追问,我对你这个问题很有兴趣.应该我猜的没错是写在了全局区造成的,全局区只能申请变量,不能对静态变量赋值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
marilynbkun
2012-01-06 · TA获得超过756个赞
知道小有建树答主
回答量:328
采纳率:0%
帮助的人:243万
展开全部
Tree_Node *NILL;
NILL = (Tree_Node*)malloc(sizeof(Tree_Node);
即可赋值
追问
我试了你的方法啊,还是同样的错误
static Tree_Node *NILL=(Tree_Node*)malloc(sizeof(Tree_Node));
NILL->color='B';

C:\Program Files\Microsoft Visual Studio\MyProjects\exam2\main.cpp(14) : error C2143: syntax error : missing ';' before '->'

这种报错
追答
同一楼
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
原来今天周三
2012-01-06
知道答主
回答量:8
采纳率:0%
帮助的人:4万
展开全部
不要加 *
Tree_Node NILL;
然后用 NILL.xxx赋值
追问
但是我后面的程序要判定是否某个节点的左右孩子指向这个NILL节点
如果不用指针,怎么做呢?
追答
可以取变量地址
假设你后面定义的局部节点为A,则语句为
if(A.left == &NILL)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MT4MT5编程技术研究
2021-03-20
知道答主
回答量:14
采纳率:0%
帮助的人:3573
展开全部

需要全套原创外汇EA开发培训课程,可联系作者购买

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式