我有一个列表结构:

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函数,并给它一个不同的名称。它可能是您正在实现的类的成员;在类的祖先类也要看。

10-02 12:29