2015-11-02 57 views
-2

我有這個功能,下面的C代碼:error:expected';',','or')''''token .. but can not find?

alist* createalist(int length){ //error occurs here 
    struct alist *alist2 = malloc(sizeof(struct alist)); 
    alist2->size = length; 
    alist2->data = calloc(2, sizeof(void *)); 
    alist2->data[length] = NULL; 
    return alist2; 
} 

這是包含在.c文件。我的.h文件中聲明它是這樣的:

alist* createalist(int length); 

ALIST的類型定義:

typedef struct alist { 
    int current; 
    int size; 
    int increment_rate; 
    void ** data; 
} alist; 

我當然包括我在我的.C .H。這用於編譯成功,但現在奇怪的原因,我總是得到的

error: expected ';', ',' or ')' before '{' token 

錯誤在開始。一切似乎都沒問題。我不明白。

+7

你可以分享上面的代碼嗎? –

+0

看起來像上面的代碼是問題所在。您的頭文件中的aliste * createalist和代碼中的alist * createalist之間仍然存在不一致。 – Magisch

+0

以上只是包括(#包括 ...) –

回答

3

大多是猜測(通過看sizeof(struct alist)使用),但它看起來像

alist* createalist(int length){ 

應該

struct alist* createalist(int length){... 

編輯:加入後

typedef struct部分,我看不到任何名爲taille的結構成員,正在使用中

alist2->taille = length; 
+0

不解決它 –

+1

不知道爲什麼人會downvote。缺少的結構肯定是代碼中的一個問題。 @ J.威爾遜即使不是直接的原因,你仍然需要它。 – Magisch

+0

爲了澄清,無論如何,在發佈答案後添加了'typedef'。 –

相關問題