当我试图编译时,我得到一个错误:“取消引用指向不完整类型struct Freunde的指针”
这是我的结构:
typedef struct {
char *Name;
struct Freunde *next;
} Freunde;
错误发生在:
while (strcmp(Anfang->next->Name, Name) != 0)
Anfang = Anfang->next;
Edit///下面是我试图运行的程序中的一些代码:
void add(Freunde* Anfang, char* Name) {
Freunde * naechster;
while (Anfang->next != NULL) {
Anfang = Anfang->next;
}
Anfang->next = (Freunde*) malloc(sizeof(Freunde));
naechster = Anfang->next;
naechster->Name = Name;
naechster->next = NULL;
}
int main() {
Freunde *liste;
liste = (Freunde*) malloc(sizeof(Freunde));
liste->Name = "Mert";
liste->next = NULL;
add(liste, "Thomas");
add(liste, "Markus");
add(liste, "Hanko");
Ausgabe(liste);
return 0;
}
最佳答案
主要问题是,您将结构的next
成员定义为struct Freunde *next;
,但代码中没有struct Freunde
。
首先声明astruct Freunde
,如下所示
struct Freunde
{
char *name;
struct Freunde *next;
};
然后你可以
typedef
,但你不必typedef struct Freunde Freunde;
也:
不要为these reasons转换
malloc()
的返回值始终检查
malloc()
是否未返回NULL
。