我有一個結構說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
建立成功。但這不是我想要的。
「但這不是我想要的。」 ,你想要什麼? – phoxis
我想使用指針訪問StructArray [0] [1] .cChar。在這種情況下,它將訪問StructArray [0] [0] .cChar而不是此數組的其他成員。 – Swanand
您已經將自己的數組位置'[0] [0]'處的結構地址分配給指針數組structPtr的第0個元素。因此'StructPtr [0]'現在擁有結構'StructArray [0] [0]'的基地址。因此'StructPtr [0] - > cChar'會給你'StructArray [0] [0]'的cChar組件' – phoxis