Dieser Fehler wird immer ausgelöst, wenn ich versuche, meine zugewiesene Struktur das zweite Mal freizugeben, was es nicht sollte, weil die Struktur auf NULL nach i festgelegt ist Ich befreie es.Fehler: "Zeiger wird freigegeben wurde nicht zugeordnet" in c
hier ist mein struct ohne wirkliche Zeiger im Inneren:
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;
die Barebone Hauptfunktion:
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;
}
}
jemand eine Idee?
Dieser Code sollte gut funktionieren.Kannst du einen [minimalen Testfall] (http://sscce.org) schreiben? –
Können Sie zeigen, wie das "zweite Mal" tatsächlich passiert? Der gezeigte Code ruft nur einmal 'freeTouch()' auf. – unwind