1

我有一个列表结构:

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

那有什么问题呢?

干杯

4

1 回答 1

4

您显然已经声明了一个您自己的函数 named free,并且编译器发现它而不是您认为您正在调用的那个。使用范围解析运算符调用全局函数:

::free(theCurrentFace);

或者找到另一个free函数并给它一个不同的名称。它可能是您正在实现的类的成员;也可以查看该类的祖先类。

于 2012-10-16T18:53:31.760 回答