这个错误总是被触发,当我试图释放我分配的结构第二次,它不应该,因为结构设置为NULL后,我解放它。错误:“指针被释放未被分配”在c
这里是我的结构与它里面没有真正的指针:
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)吗? – 2012-04-02 10:46:40
你可以展示“第二次”实际发生的情况吗?所示的代码只调用'freeTouch()'一次。 – unwind 2012-04-02 10:49:57