错误:在不是结构或联合的某些内容中要求成员“ prev_”

error: request for member ‘prev_’ in something not a structure or union

本文关键字:成员 prev 结构 错误      更新时间:2023-10-16

我搜索了此错误:

错误:在某些不是结构或联合的事物中请求成员" 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;
         }
} 
if(*node1->prev_)

->的运算符优先级高于*。以上语句等效于:

if (*(node1->prev_))

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

if((*node1)->prev_)

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

node1->prev_->next_ = node2;

这可能应该是:

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