gpt4 book ai didi

c++ - 错误 : Expression Must have a pointer to class C++

转载 作者:行者123 更新时间:2023-11-28 02:55:45 25 4
gpt4 key购买 nike

您好,我遇到了这个问题,我进行了研究,我的代码应该没有问题。所以我不确定为什么会这样,基本上我有这个:

typedef struct {

Edge *next;
Edge *twin;

} Edge;

然后我有一个存储这个结构的 vector

std::vector<Edge*> EdgeList;

但是,当我尝试访问此边缘的成员时,我遇到了上述错误。

Edge *e1
e1->next = EdgeList[index]->next->twin;

如果我以这种方式编写代码,我最多只能获得一个学位;

Edge *e1, *e2;
e2 = EdgeList[index]->next;
e1->next = e2->twin;

错误消失。请注意,我已确保所有指针都不为 NULL。请问为什么会这样?如果我想访问多个学位,我不能为每个学位一次声明一个变量。有人可以帮忙吗?

最佳答案

您的问题是您创建了一个匿名结构和一个名为 Edge 的(匿名)类型的变量,而不是创建一个名为 Edge 的类型。

将结构声明更改为:

struct Edge
{
Edge *next;
Edge *twin;
};

P.S:您不需要在 C++ 中使用 typedef。

P.P.S:我不知道你的用例是什么,但你应该将结构直接存储到 vector 中而不是指向它们的指针。

关于c++ - 错误 : Expression Must have a pointer to class C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22032453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com