簡體   English   中英

Segmentfault 試圖從 function 訪問結構中的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM