Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Segmentfault试图从函数访问结构中的值 void删除(常量int&info、AvlNode*&node){ //当前保持最左/最右叶 AvlNode*当前=节点; AvlNode*temp=节点; 如果(当前->元素==信息){ //已删除的节点位于根目录中 AvlNode*rootreplace=当前; rootreplace=当前->右侧; while(rootreplace->left!=NULL){ rootreplace=rootreplace->left; } int c2=根替换->元素; cout_C++_Function_Linked List_Segmentation Fault_Nodes - Fatal编程技术网

C++ Segmentfault试图从函数访问结构中的值 void删除(常量int&info、AvlNode*&node){ //当前保持最左/最右叶 AvlNode*当前=节点; AvlNode*temp=节点; 如果(当前->元素==信息){ //已删除的节点位于根目录中 AvlNode*rootreplace=当前; rootreplace=当前->右侧; while(rootreplace->left!=NULL){ rootreplace=rootreplace->left; } int c2=根替换->元素; cout

C++ Segmentfault试图从函数访问结构中的值 void删除(常量int&info、AvlNode*&node){ //当前保持最左/最右叶 AvlNode*当前=节点; AvlNode*temp=节点; 如果(当前->元素==信息){ //已删除的节点位于根目录中 AvlNode*rootreplace=当前; rootreplace=当前->右侧; while(rootreplace->left!=NULL){ rootreplace=rootreplace->left; } int c2=根替换->元素; cout,c++,function,linked-list,segmentation-fault,nodes,C++,Function,Linked List,Segmentation Fault,Nodes,错误来自AvlNode*rootreplace=current;更改为AvlNode*rootreplace=node;修复了此问题。尝试“cout”指针(而不是指向的对象)node、current和rootreplace,只是为了查看某些指针何时以及为什么变为空。 void remove( const int & info, AvlNode * & node ) { //current holdes leftmost/rightmost leaf AvlNode*cur

错误来自
AvlNode*rootreplace=current;
更改为
AvlNode*rootreplace=node;
修复了此问题。

尝试“cout”指针(而不是指向的对象)
node
current
rootreplace
,只是为了查看某些指针何时以及为什么变为空。
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;