同学你是没理解指针是什么意思。
Root = NULL的意思是将Root指向一处空的位置,这时候Root里面的一切都是空的(没有开辟内存空间),当运行到Root->data.value的时候,程序尝试读取Root里面的data元素,这时候就会出现读取内存越界,因为Root指向的地方是空(没有分配内存)。
首先呢,在我看来,你的第一个struct 的定义完全没有必要。这个结构体里面只有一个元素,完全没有必要声明一个结构体。
一个简单的宏定义 #define ElemType char就OK了,或者 typedef char ElemType
其次,你的主程序里赋予 Root 一个空,Root 是指向根节点的指针啊,它为空就是说明二叉树压根不存在的。所以也就不能讨论里面的节点的数据是什么这种问题了。
30分钟彻底学会C语言指针