我制作这样的代码:
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;
}
但是我得到关于赋值的错误从没有强制转换的指针生成整数,我无法理解它。 有人能帮助我吗?
答案 0 :(得分:2)
(*T)->info
是int
,info
在结构中声明为int
。 NULL
是一个指针。
答案 1 :(得分:2)
当你使用(* Tree)时,你取消引用指针,然后再次使用( Tree)取消引用它 - >这相当于((* Tree))。
简而言之,要么使用
(*T).info = NULL;
或
T->info = NULL;
在你的情况下,我发现这是有道理的,因为Tree是struct node *的typedef,所以你所做的是正确的。
NULL是0转换为指针,这给你编译错误,因为info是int而不是指针。改变' NULL'到' 0'。