在结构指针中输入一个值

时间:2015-12-18 14:06:34

标签: c

我制作这样的代码:

typedef struct t_node{
    struct node *left;
    struct node *right;
    int info;
}node;

typedef struct t_node *Tree;

然后我用这个程序来创建树,这只是一个简单的过程

void createTree(Tree *T){
    (*T)->info = NULL;
}

但是我得到关于赋值的错误从没有强制转换的指针生成整数,我无法理解它。 有人能帮助我吗?

2 个答案:

答案 0 :(得分:2)

(*T)->infointinfo在结构中声明为intNULL是一个指针。

答案 1 :(得分:2)

当你使用(* Tree)时,你取消引用指针,然后再次使用( Tree)取消引用它 - >这相当于((* Tree))。

简而言之,要么使用

(*T).info = NULL;

T->info = NULL;

在你的情况下,我发现这是有道理的,因为Tree是struct node *的typedef,所以你所做的是正确的。

NULL是0转换为指针,这给你编译错误,因为info是int而不是指针。改变' NULL'到' 0'。