C 错误:预期为';(';跟随函数。应为';';
我不明白为什么这个错误会持续出现。这就是我试图构建的函数:/person是一个结构。person*是一个指针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->
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
的定义,这两个定义可以是两个不同的东西。有关您显然想问的问题的答案,请参见此。