C中结构体的初始化有关问题
求助C中结构体的初始化问题
为何是报Segmentation fault (core dumped)错误,但是将main中的 stree = MakeEmpty(stree);换成NULL后就正确?
------解决思路----------------------
用C语言的都不喜欢初始化吗
------解决思路----------------------
这段代码问题大了。
SearchTree stree; 定义了一个野指针(未指向任何有效内存)
if(T != NULL){
MakeEmpty(T->Left); 访问野指针的左子树,后果未知。
MakeEmpty(T->Right);访问野指针的右子树,后果未知。
free(T);
}
最起码要分配一个节点给它吧。
SearchTree stree = malloc ................................
typedef struct TreeNode *SearchTree;
typedef struct TreeNode *Position;
struct TreeNode{
ElementType Element;
SearchTree Left;
SearchTree Right;
};
SearchTree MakeEmpty(SearchTree T){
if(T != NULL){
MakeEmpty(T->Left);
MakeEmpty(T->Right);
free(T);
}
return NULL;
}
main(){
SearchTree stree;
stree = MakeEmpty(stree);
}
为何是报Segmentation fault (core dumped)错误,但是将main中的 stree = MakeEmpty(stree);换成NULL后就正确?
------解决思路----------------------
用C语言的都不喜欢初始化吗
------解决思路----------------------
这段代码问题大了。
SearchTree stree; 定义了一个野指针(未指向任何有效内存)
if(T != NULL){
MakeEmpty(T->Left); 访问野指针的左子树,后果未知。
MakeEmpty(T->Right);访问野指针的右子树,后果未知。
free(T);
}
最起码要分配一个节点给它吧。
SearchTree stree = malloc ................................