我需要在C指針指向幫助我有兩個結構一個結構做出這樣的:指針在C
typedef struct s{
s2** d;
struct s* next;
}s;
typedef struct s2{
c* fi;
struct s2* next;
}s2;
而且我有這樣一個功能:
void modify(c* a, s2* b){ //c* is a pointer to a struct
s* rd = malloc(sizeof(s);
rd->next = NULL;
//need also to initialize the field "d" of the "s" struct
}
這是產生錯誤。如示例中所示,我需要將結構rd指向b。我需要存儲一個雙指針,因爲s2以類似列表的方式鏈接,所以我需要**指針有可能刪除列表的第一個元素。我在rd-> d = & b這樣的註釋中做了任務,但是當我試圖在函數中使用字段「d」時,我有一個無效的內存讀取,我無法理解爲什麼。
你能解釋爲什麼你需要'd'類型的雙指針嗎?根據你的描述,這根本不明顯。 – jv42 2011-03-19 14:23:28
struct s中的d是什麼?你爲什麼試圖將s2 *分配給d **? – Ptival 2011-03-19 14:25:36
@Ptival:對不起,這是s2 **,我試圖把事情弄得一團糟,讓你明白這個問題。 @ jv42:因爲s2存儲在另一個結構(如s2 *)內,我需要能夠將該指針設置爲NULL。我知道這是相當複雜的.. – Raffo 2011-03-19 14:32:16