错误:请求成员'prev_',而不是结构或联合

时间:2016-11-22 01:59:53

标签: c++ c pointers

我搜索了这个错误:

  

错误:在非结构或联合的情况下请求成员'prev_'

并且每个建议都使用->,但就我而言,我已经使用->

这是我的代码:

struct student_record_node
 {

        struct student_record* record_;
        struct student_record_node* next_;
        struct student_record_node* prev_;         
 };

void swap(struct student_record_node** node1, struct student_record_node** node2)

{

struct student_recod_node* prev_;
struct student_recod_node* next_;

          if(*node1->prev_)
          {
                  node1->prev_->next_ = node2;
          }

          if(*node2->prev_)
          {
                  node2->prev_->next_ = node1;
         }
} 

1 个答案:

答案 0 :(得分:0)

if(*node1->prev_)

->的运算符优先级高于*。以上陈述相当于:

if (*(node1->prev_))

由于node1没有指向具有此类成员的结构,这就是您获得此编译错误的原因。这应该改为:

if((*node1)->prev_)

在显示的其余代码中需要相同的修复程序。例如:

node1->prev_->next_ = node2;

这可能应该是:

(*node1)->prev_->next_ = *node2;