我有這種複雜的結構的thingie:C和動態結構元件訪問
#include <stdlib.h>
typedef struct {
int x;
int y;
} SUB;
typedef struct {
int a;
SUB *z;
} STRUCT;
#define NUM 5
int main(void)
{
STRUCT *example;
int i;
example = malloc(sizeof(STRUCT));
example->z = malloc(NUM * sizeof(SUB));
for(i = 0; i < NUM; ++i) {
/* how do I access variable in certain struct of array of z's */
}
return 0;
}
example
是動態分配的結構和z
的example
內部被動態分配SUB
結構的陣列。
如何在結構的某個元素z
中訪問某個變量?
我一直在嘗試這樣的事情:example->z[i].x
但它似乎沒有工作。
目前我使用這個破舊尋找workaraound:
SUB *ptr = example->z;
int i;
for(i = 0; i < amount_of_z_structs; ++i) {
/* do something with 'ptr->x' and 'ptr->y' */
ptr += sizeof(SUB);
}
我沒有看到你的代碼中的任何'z'。你可以解釋嗎? – SuperSaiyan 2011-04-02 02:45:13
真是一團糟。 XrM,請清除'z'和'b'。 – karlphillip 2011-04-02 02:55:11
其他人已經與他們搞砸了,然後也刪除了他的答案。 – XrM 2011-04-02 02:56:12