我有一个列表结构:
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告诉我:“错误,函数调用中的参数太多”,用于免费通话。
这有什么问题?
干杯
答案 0 :(得分:4)
您显然声明了自己名为free
的函数,编译器正在查找而不是您认为正在调用的函数。使用scope-resolution运算符调用全局函数:
::free(theCurrentFace);
或者找到另一个free
函数并为其指定一个不同的名称。它可能是您正在实施的课程的成员;看看班上的祖先课程。