我不明白为什么这个错误继续弹出。这是我正在尝试构建的函数:/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(( 的回归。 演员是邪恶的。