C++ 结构内部的访问结构失败
我有一个结构a,其定义如下:C++ 结构内部的访问结构失败,c++,c,C++,C,我有一个结构a,其定义如下: typedef struct A { CvRect B; // rect int C; double D; } A; 在我的主程序中,我获取一系列项目中的一项: A *r = (A*) cvGetSeqElem(X, i); 每当我尝试访问rect时,都会出现以下错误之一: if (r.rect.width>100 && r.rect.height>100) 错误:“r”中的成员“rect
typedef struct A
{
CvRect B; // rect
int C;
double D;
}
A;
在我的主程序中,我获取一系列项目中的一项:
A *r = (A*) cvGetSeqElem(X, i);
每当我尝试访问rect时,都会出现以下错误之一:
if (r.rect.width>100 && r.rect.height>100)
错误:“r”中的成员“rect”请求,该成员属于非类类型“A”
或
错误:“->”的基操作数具有非指针类型“CvRect”
知道如何访问位于另一个结构中的结构CvRect->height吗
谢谢
r
是指向`struct a
的指针,其中包含指向CvRect
的(非指针)成员B
(假定为rect
?)。所以你必须写r->rect.widthr
是指向`struct a
的指针,其中包含一个指向CvRect
的(非指针)成员B
(假定为rect
?)。所以你必须写
r->rect.width
您可以组合这些方法<例如,代码>r->rect.width
r
是一个指针,因此应该使用->
运算符<但是,code>rect不是指针,因此您可以使用
组合这些方法<例如,代码>r->rect.widthr
是一个指针,因此应该使用->
运算符<但是,code>rect不是指针,因此在示例中使用
时,r
是指针。因此,必须通过“->”访问r
的直接成员,如r->rect
r->rect
(这应该是r->B
,因为在A的定义中,这就是你所说的)
是一个对象,而不是指针。因此,您可以使用
访问其成员,因此r->rect.width
在您的示例中,r
是一个指针。因此,必须通过“->”访问r
的直接成员,如r->rect
r->rect
(这应该是r->B
,因为在A的定义中,这就是你所说的)
是一个对象,而不是指针。因此,您可以使用
访问其成员,因此r->rect.width
您发布的代码名称不一致,但我认为您需要类似的名称
if (r->rect.width>100 && r->rect.height>100)
如果r是一个指针,您需要取消对它的引用以获得
rect
成员,但该成员本身不是指针。您发布的代码名称不一致,但我认为您需要类似的名称
if (r->rect.width>100 && r->rect.height>100)
如果r是指针,则需要取消对它的引用以获得rect
成员,但该成员本身不是指针
知道如何访问位于另一个结构中的结构CvRect->height吗
如果r是指针或
r.B.width
如果r是一个实例
知道如何访问位于另一个结构中的结构CvRect->height吗
如果r是指针或
r.B.width
如果r是一个实例你的
a
声明不包含名为rect
的成员。你的a
声明不包含名为rect
的成员。我想你的意思是r->B.width
@qbert:从问题中详述错误的代码示例中,我假设B
实际上是rect
,所以我选择了这个名字……我想你的意思是r->B.width
@qbert:从问题中详述错误的代码示例来看,我假设B
实际上是rect
,所以我选择了这个名字。。。