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

あなたは明らかにあなた自身の名前の関数を宣言しましたfree、そしてコンパイラはあなたが呼んでいると思っていたものの代わりにそれを見つけています。スコープ解決演算子を使用して、グローバル関数を呼び出します。

::free(theCurrentFace);

または、他のfree関数を見つけて、別の名前を付けます。実装しているクラスのメンバーである可能性があります。クラスの祖先クラスも調べてください。

于 2012-10-16T18:53:31.760 に答える