我有一个结构说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];
现在,我想访问Structure StructArray [0] [1]的成员,即StructArray[0][1].cChar
或StructArray[0][1].fFloat
如何使用StructPtr访问它们?
我尝试使用StuctPtr[0][1]->cChar
然后((StructPtr[0])[1])->cChar
两者都返回了错误。
StructPtr[0]->cChar
构建成功。但这不是我想要的。
答案 0 :(得分:1)
“现在我想用指针访问它”并不是很具描述性。您的示例中的内容不起作用。你声明的不是指向数组的指针,而是指针数组。这就是你需要的吗?我不知道。
如果你真的需要一个指向数组的指针,你可以将指针声明为
struct MyStruct (*StructPtr)[20];
然后将其指向您的数组
StructPtr = StructArray;
从此时起,您可以通过此指针访问原始数组StructPtr[i][j]
StructPtr[i][j].cChar = 'a';
或者,您可以将指针声明为
struct MyStruct (*StructPtr)[SEC_DIMENSION][20];
然后将其指向您的数组
StructPtr = &StructArray;
从此时起,您可以通过此指针访问原始数组(*StructPtr)[i][j]
(*StructPtr)[i][j].cChar = 'a';
答案 1 :(得分:1)
我认为你需要一个“指向struct MyStruct类型结构的维数[SEC_DIMENSION] [20]数组的指针”:
struct MyStruct (*StructPtr)[SEC_DIMENSION][20];
StructPtr = StructArray;
StructPtr[i][j]->cChar;