段错误试图从函数访问struct中的值


void remove( const int & info, AvlNode * & node ) {
//current holdes leftmost/rightmost leaf
AvlNode*current = node;
AvlNode*temp = node;
if(current->element == info){
//deleted node is in root
AvlNode*rootreplace = current;
rootreplace = current->right;
while(rootreplace->left != NULL){
rootreplace = rootreplace->left;
}
int c2=rootreplace->element;
cout << c2;
remove(c2,node);
removeleftmost(c2,node);
cout << c2;
//node->element = c2;

root和node可以互换节点被设置为根节点,这是我试图改变的值(元素)。我可以输出root->element and rootrepalace->element工作得很好,但是当我设置

node->element = rootreplace->element我得到一个段故障11。让我相信这与我访问这些节点的方式有关,尽管我在网上找不到太多信息。

AvlNode*rootreplace = current;AvlNode*rootreplace = node;的错误修复了这个问题。