解除指向不完整类型结构的指针

Sca*_*arh 0 c struct pointers

当我尝试编译时,我得到一个错误说:"解除指向不完整类型struct Freunde的指针"

那是我的结构:

typedef struct {
    char *Name;
    struct Freunde *next;
} Freunde;
Run Code Online (Sandbox Code Playgroud)

错误发生在这里:

while (strcmp(Anfang->next->Name, Name) != 0)
    Anfang = Anfang->next;
Run Code Online (Sandbox Code Playgroud)

编辑///所以这里是我尝试运行的程序中的更多代码:

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;
}
Run Code Online (Sandbox Code Playgroud)

Iha*_*imi 5

主要问题是您next将结构的成员定义为,struct Freunde *next;struct Freunde代码中没有.

首先声明一个struct Freunde,像这样

struct Freunde
{
    char *name;
    struct Freunde *next;
};
Run Code Online (Sandbox Code Playgroud)

然后你可以typedef,但你不必

typedef struct Freunde Freunde;
Run Code Online (Sandbox Code Playgroud)

也:

  1. malloc()由于这些原因,不要转换返回值
  2. 始终检查malloc()没有返回NULL.