所以我想用C做一个游戏,我有以下几种类型:释放由malloc分配的结构的结构会导致错误?
typedef struct{
float x;
float y;
} vector;
typedef struct{
vector *vec;
void (*update)();
} velocity;
typedef struct{
vector *vec;
velocity *vel;
void (*move)();
} hero;
这里是下面的代码是给我的错误:
hero *h;
// allocate memory for hero
h = malloc(sizeof(hero*));
// allocate memory for velocity
h->vel = malloc(sizeof(velocity*));
// initialize vectors
h->vec = malloc(sizeof(vector*));
h->vel->vec = malloc(sizeof(vector*));
free(h->vec); // free hero vector
free(h->vel->vec); // free velocity vector
free(h->vel); // free velocity
free(h); // free hero
出于某种原因,free(h-> vel)在尝试释放速度时给了我一个错误。为什么会发生?提前致谢!!
我想你的意思在此声明分配型的英雄,而不是指针英雄*的对象h = malloc(sizeof(hero)); –
请了解如何创建[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。 –
错误说的是什么? –