1

我正在尝试将字符插入三元搜索树,请帮我解决这个分段错误??这是我正在做的插入尝试,在运行这个我得到分段错误(核心转储)请帮我解决为什么会这样?

int main(int argc ,char* agrv[])
{
TSTNode *root;
char *str;
cin >> str;
InsertTST(root,str);
DisplayTST(root);
return 0; 
}

TSTNode* InsertTST(TSTNode *root, char *str)
{
if(root== NULL){
    TSTNode *root = (TSTNode *)malloc(sizeof(TSTNode *));
    root->left = NULL;
    root->right = NULL;
    root->eq = NULL;
    root->is_end_of_str = 0;

    return root;
}


if(root->data < *str)
    InsertTST(root->right, str);
else if (root->data == *str){
    if(*(str+1) != '\0')
    InsertTST(root->eq, str+1);
    else 
    root->is_end_of_str = 1;
}
else 
    InsertTST(root->left, str);

return root;
}
4

1 回答 1

2
char *str;
cin >> str;

没有分配内存,然后写入所述内存 = seg 错误。

于 2012-12-16T14:55:57.250 回答