【发布时间】:2011-09-07 05:43:54
【问题描述】:
我有一个结构说 MyStruct:-
#define SEC_DIMENSION 2
struct MyStruct
{
char cChar;
float fFloat;
int iInt;
};
struct MyStruct StructArray[SEC_DIMENSION][20]; //Two Dimensional Array of Structures.
现在我想用指针访问它。
struct MyStruct *StructPtr[SEC_DIMENSION];
我的作业如下:-
StructPtr[0] = &StructArray[0][0];
现在,我想访问结构 StructArray[0][1] 的成员,即 StructArray[0][1].cChar 或 StructArray[0][1].fFloat
如何使用 StructPtr 访问它们?
我尝试使用StuctPtr[0][1]->cChar 然后((StructPtr[0])[1])->cChar
两者都返回错误。
使用StructPtr[0]->cChar 构建成功。但这不是我想要的。
【问题讨论】:
-
“但这不是我想要的。” ,你到底想要什么?
-
我想使用指针访问 StructArray[0][1].cChar。在这种情况下,它将访问 StructArray[0][0].cChar 而不是这个数组的其他成员。
-
您已将数组位置
[0][0]处的结构地址分配到指针数组StructPtr 的第0 个元素中。因此StructPtr[0]现在持有结构StructArray[0][0]的基地址。因此StructPtr[0]->cChar会给你cChar组件StructArray[0][0] -
@Swanand Purankar:嗯?为什么第一种情况是
StructArray[0][1],然后突然StructArray[0][0]?对不起,这一切仍然过于混乱。更好地描述您正在尝试做的事情。