【问题标题】:Segmentfault trying to access value in struct from a functionSegmentfault 试图从函数访问结构中的值
【发布时间】:2021-06-10 23:58:27
【问题描述】:
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 可以互换 node 设置为根节点,这是我要更改的值(元素)。 我可以输出root-&gt;element and rootrepalace-&gt;element 工作正常 ,但是当我设置时

node-&gt;element = rootreplace-&gt;element 我得到一个段故障 11。让我相信这与我如何访问这些节点有关,但我在网上找不到太多信息。

【问题讨论】:

  • 尝试“计算”指针(而不是指向的对象)nodecurrentrootreplace,只是看看何时以及为什么有些变为 null。

标签: c++ function linked-list segmentation-fault nodes


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-03-22
    • 2016-10-13
    • 2017-01-16
    • 2023-03-18
    • 2021-09-13
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多