2013-02-16 94 views
2

我得到一個錯誤(錯誤:取消引用指向不完整類型的指針 )addData-> s = s和addData-> type = type,我不確定爲什麼...好像它應該工作,我(我有點生疏C,不過)C:錯誤:取消引用指向不完整類型的指針

下面的代碼:

int addSym(char *s, var_type type){ 
    struct syment* addData= malloc(sizeof(syment)); 
    addData->s = s; 
    addData->type = type; 

...

我已經syment爲

typedef struct syment_s { 
    char *s; 
    int offset; 
    var_type type; 
    struct syment_s *next; 
}*syment; 

謝謝!

+0

雙分號是錯字嗎? 'malloc(sizeof(syment));;' – Mike 2013-02-16 05:16:26

+0

是的,對不起! – winepretzel 2013-02-16 05:19:19

+0

重複的https://stackoverflow.com/questions/2576554/c-programming-dereferencing-pointer-to-incomplete-type-error – reinierpost 2015-01-29 10:30:38

回答

1

嘗試改變

typedef struct syment_s { 
    char *s; 
    int offset; 
    var_type type; 
    struct syment_s *next; 
}*syment; 

typedef struct syment_s { 
    char *s; 
    int offset; 
    var_type type; 
    struct syment_s *next; 
} syment; 

指針過載,這是不是Crufts(指針是狗,Crufts是狗展)。

+0

謝謝! 這並刪除結構在 struct syment * addData = malloc(sizeof(syment)); 工作,謝謝! 我被告知要使用* syment,以便以後可以使用syment * ...猜出錯了! – winepretzel 2013-02-16 05:25:01

+0

你可以打勾我。即接受答案! – 2013-02-16 05:27:13

+0

謝謝!它說我必須等一分鐘,然後我才能(n00b這裏) – winepretzel 2013-02-16 05:28:24

相關問題