函数调用中的free struct太多参数

时间:2012-10-16 18:50:14

标签: c++ function struct arguments free

我有一个列表结构:

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告诉我:“错误,函数调用中的参数太多”,用于免费通话。

这有什么问题?

干杯

1 个答案:

答案 0 :(得分:4)

您显然声明了自己名为free的函数,编译器正在查找而不是您认为正在调用的函数。使用scope-resolution运算符调用全局函数:

::free(theCurrentFace);

或者找到另一个free函数并为其指定一个不同的名称。它可能是您正在实施的课程的成员;看看班上的祖先课程。