我有一个列表结构:
typedef struct FaceNode{
FaceNode *next;
Face *aFace;
FaceNode *prev;
} FaceNode;
我使用此结构作为成员:
FaceNode *myFaces;
并像这样初始化它(在构造函数中)
this->myFaces = (FaceNode*)malloc(sizeof(FaceNode)*1);
后来我想按如下方式释放它:
FaceNode *theCurrentFaceNode;
Face* theCurrentFace;
while(this->myFaces->next){
theCurrentFaceNode = this->myFaces;
theCurrentFace = theCurrentFaceNode->aFace;
this->myFaces = this->myFaces->next;
free(theCurrentFace);
free(theCurrentFaceNode);
}
现在我的IDE告诉我:对于免费调用,“错误,函数调用中的参数过多”。
那有什么问题呢?
干杯
最佳答案
您显然已经声明了一个自己的名为free
的函数,并且编译器正在查找该函数,而不是您认为正在调用的函数。使用范围解析运算符调用全局函数:
::free(theCurrentFace);
或者找到另一个
free
函数,并给它一个不同的名称。它可能是您正在实现的类的成员;在类的祖先类也要看。