このエラーは、私が割り当てられた構造体を解放しようとしているときに起きます。構造体がNULLに設定されているためそれを解放している。エラー: "ポインタが解放されていませんでした。"
ここに私の構造体は、その中には本当のポインタである:
typedef struct{
int frame;
double timestamp;
int identifier;
int state;
int unknown1;
int unknown2;
mtVector normalized;
float size;
int unknown3;
float angle;
float majorAxis;
float minorAxis;
mtVector unknown4;
int unknown5[2];
float unknown6;
}Touch;
ベアボーン主な機能:
int main(){
Touch *myTouch = NULL;
int inputCounter = 0;
//whenever a touch is recognized:
...
myTouch = (Touch*)realloc(myTouch,sizeof(Touch)*(inputCounter++));
...
// everything works fine until:
freeTouch(myTouch);
}
void freeTouch(Touch *f){
if(f != NULL){
free(f);
f = NULL;
}
}
誰もがアイデアを得ましたか?
そのコードは正常に動作するはずです。あなたは[最小限のテストケース](http://sscce.org)を書くことができますか? –
「セカンドタイム」が実際にどのように起こるかを示すことができますか?表示されているコードは 'freeTouch()'を一度しか呼び出しません。 – unwind