[英]Segmentfault trying to access value in struct from a function
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 是可互換的,因為此節點設置為根節點,這是我要更改的值(元素)。 我可以 output root->element and rootrepalace->element
工作正常,但是當我設置
node->element = rootreplace->element
我得到一個段錯誤 11. 讓我相信這與我如何訪問這些節點有關,但我在網上找不到太多。
錯誤來自AvlNode*rootreplace = current;
更改為AvlNode*rootreplace = node;
解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.