我正在尝试在C中实现二进制搜索树。我在MinGW编译器中使用codeblocks ide
当我试图运行以下代码时,我的运行时错误 进程返回进程返回0xC00000fd
但是当我在http://ideone.com/汇编时 它可以正常工作,没有任何错误
解决:感谢@ user1161318
#include <stdio.h>
#include <stdlib.h>
struct node
{
struct node *left;
struct node *right;
struct node *parent;
int value;
}*r;
void inorder(struct node *root)
{
int sam;
if(root)
{
inorder(root->left);
sam = root->value;
printf(" %d ->",sam);
inorder(root->right);
}
}
void insert(struct node *root,int x)
{
struct node *temp = (struct node*)malloc(sizeof(struct node));
temp->value = x;
struct node *y=root;
while(root)
{
y = root;
if(root->value > x)
{
root = root->left;
}
else
{
root = root->right;
}
}
temp->parent = y;
if(!y)
{
r=temp;
}
else if(x > y->value)
{
y->right = temp;
}
else
{
y->left = temp;
}
}
int main()
{
int i;
for(i=0; i<10; i++)
{
insert(r,i);
}
inorder(r);
return 0;
}
答案 0 :(得分:1)
全局变量struct node *r
未在main()
中初始化。