无法找到错误,但它给了我一个

时间:2015-05-27 16:58:17

标签: c

#include<stdio.h>
#include<stdlib.h>
#include <string.h>

typedef struct info{
    int vreme_pojavljivanja;
    int vreme_uklanjanja;
    char *tekst;

}Info;

typedef struct clan{
    Clan *prethodni;
    Clan *sledeci;
    Info *prevod;
}Clan;

Clan *novi_clan(char *tekst, int vreme_poc, int vreme_kraj, int max_text);

这是我的Strukture.h文件

这是我的novi_clan.c文件

#include "strukture.h"

Clan *novi_clan(char *tekst,int vreme_poc,int vreme_kraj,int max_text){
    Clan *novi = malloc(sizeof(Clan));


    novi->prethodni = NULL;
    novi->sledeci = NULL;
    novi->prevod = malloc(sizeof(Info));
    novi->prevod->vreme_pojavljivanja = vreme_poc;
    novi->prevod->vreme_uklanjanja = vreme_kraj;
    novi->prevod->tekst = calloc(max_text, sizeof(char));
    strcpy(novi->prevod->tekst, tekst);
    return novi;

}

它给了我像Clan没有定义的错误.. 如果有人看到错误,请回复

2 个答案:

答案 0 :(得分:1)

改变这个:

typedef struct clan{
    Clan *prethodni;
    Clan *sledeci;
    Info *prevod;
}Clan;

typedef struct clan{
    struct clan *prethodni;
    struct clan *sledeci;
    Info *prevod;
}Clan;

由于您在实际定义之前使用了类型Clan

答案 1 :(得分:1)

typedef struct clan{
    Clan *prethodni;
    Clan *sledeci;
    Info *prevod;
}Clan;

当您在此处提供结构的定义时,编译器尚未“知道”Clan是什么;将其更改为

typedef struct clan{
    struct clan *prethodni;    // Don't use the typedefed name, it's not yet "available"
    struct clan *sledeci;
    Info *prevod;
}Clan;