2015-11-02 3 views
-2

У меня есть следующий код C с помощью этой функции:error: expected ';', ',' or ')' before '{' 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; 

Конечно я включил мой .h в моем .се. Это использовалось для компиляции успешно, но теперь по странным причинам я всегда получаю

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

ошибка в начале. Кажется, все в порядке. Я не понимаю.

+7

Вы можете поделиться кодом над этим? –

+0

Похоже, что код выше - это проблема. У вас все еще есть диспропорция между aliste * createalist в вашем файле заголовка и alist * createalist в вашем коде. – Magisch

+0

Наверху только что включает (#include ...) –

ответ

3

В основном догадка (видя использование sizeof(struct alist)), но это выглядит как

alist* createalist(int length){ 

должен быть

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

EDIT:

после добавления typedef struct часть, я не вижу ни одного элемента структуры по имени taille, который используется в

alist2->taille = length; 
+0

не решает это –

+1

Не знаете, почему люди будут downvote. недостающая структура, безусловно, является проблемой в коде. @ J.Wilson, даже если это не было непосредственной причиной, вам все еще нужно. – Magisch

+0

Чтобы уточнить, «typedef» был добавлен после того, как ответ был отправлен, во всяком случае. –