结构的数组我有两个结构解放出来的内部结构
struct obj_t {
int id;
float x;
float y;
};
struct cluster_t {
int size;
int capacity;
struct obj_t *obj;
};
正如你所看到的,有指向第一obj_t
内cluster_t
我想要做的是摆脱内部阵列每obj_t cluster_t
难道我必须用for
这样的循环来写吗?
void clear_cluster(struct cluster_t *c)
{
for(int i = 0; i<c->size;i++)
{
free(&c->obj[i]);
}
free(c->obj);
}
或者可以像这样释放内存吗?
void clear_cluster(struct cluster_t *c)
{
free(c->obj);
}
按照您分配的顺序进行反转。 –
*“正如你可以看到'obj_t'数组在'cluster_t'内*” - 我看不到'cluster_t'内的任何数组。我可以看到一个指针,但这是一个不同的事情。 – axiac
在'struct'中没有指向数组的指针! – Olaf