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赋值,可能方法不对,求教 展开
struct Tree_Node
{
char color;
int key;
struct Tree_Node *left;
struct Tree_Node *right;
struct Tree_Node *p;
};
然后想定义一个NILL表示叶子节点,作为全局变量。
Tree_Node *NILL;
可是无法给NILL赋值,可能方法不对,求教 展开
7个回答
展开全部
static Tree_Node *NILL=(Tree_Node*)malloc(sizeof(Tree_Node));
应该是这样的吧
static struct Tree_Node *NILL=(struct Tree_Node*)malloc(sizeof(struct Tree_Node));
表示是结构体
应该是这样的吧
static struct Tree_Node *NILL=(struct Tree_Node*)malloc(sizeof(struct Tree_Node));
表示是结构体
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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函数中,你写在全局区了吧
有问题再追问,我对你这个问题很有兴趣.应该我猜的没错是写在了全局区造成的,全局区只能申请变量,不能对静态变量赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Tree_Node *NILL;
NILL = (Tree_Node*)malloc(sizeof(Tree_Node);
即可赋值
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 '->'
这种报错
追答
同一楼
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不要加 *
Tree_Node NILL;
然后用 NILL.xxx赋值
Tree_Node NILL;
然后用 NILL.xxx赋值
追问
但是我后面的程序要判定是否某个节点的左右孩子指向这个NILL节点
如果不用指针,怎么做呢?
追答
可以取变量地址
假设你后面定义的局部节点为A,则语句为
if(A.left == &NILL)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
需要全套原创外汇EA开发培训课程,可联系作者购买
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询