C 错误:预期为';(';跟随函数。应为';';

C 错误:预期为';(';跟随函数。应为';';,c,function,struct,C,Function,Struct,我不明白为什么这个错误会持续出现。这就是我试图构建的函数:/person是一个结构。person*是一个指针 void(*CreateNext)(struct Person *this, int isNextNext, ...) { Person* person; person = (Person*)malloc(sizeof(Person)); person = CreatePerson(person); this->

我不明白为什么这个错误会持续出现。这就是我试图构建的函数:/person是一个结构。person*是一个指针

void(*CreateNext)(struct Person *this, int isNextNext, ...)
    {
        Person* person;
        person = (Person*)malloc(sizeof(Person));
        person = CreatePerson(person);
        this->next = person;
    }

The error is on the first line and on the '{'

//This is the struct:
struct Person {
    char* name;
    int id;
    int numOfKids;
    char** kids;
    struct Person* next;
    void (*Print)(struct Person* this);
    void (*KillNext)(struct Person* this);
    struct Person* (*SelfDestruct)(struct Person* this);
    void (*CreateNext)(struct Person* this, int isNextNext, ...);
};

您正在函数范围外声明变量(指向函数的指针)

您希望CreateNext是函数名,而不是变量名

void CreateNext(struct Person *this, int isNextNext, ...)
    {
        Person* person;
        person = (Person*)malloc(sizeof(Person));
        person = CreatePerson(person);
        this->next = person;
    }

顺便说一句,你不应该施放malloc()的返回。施放是邪恶的。

这不是正确的C;你的意思是像
void*CreateNext(struct Person,int,…)
?@CS student This void(*CreateNext)(struct Person*This,int isNextNext,…)不是函数定义。它是一个错误的函数指针声明。它应该是指向函数的指针。它是否正确?发布
Person
struct Person
的定义,这两个定义可以是两个不同的东西。有关您显然想问的问题的答案,请参见此。