问题:如果我有一个指向“ints”结构的指针(如下所示),并且将其强制转换为 void 并返回,这是否意味着我不能再释放它了?free 如何跟踪分配大小?
typedef struct ints
{
int size;
int *data;
}
ints;
static void dev_array_cleanup(void *array, array_type type)
{
switch(type)
{
case INT:
ints *i = (ints*) array;
free(i->data);
free(i);
i = NULL;
break;
}
}
static void* dev_array_set(void *array, int size, array_type type)
{
void *p;
switch(type)
{
case INT:
ints *i = (ints*) malloc(sizeof(ints));
i->size = size;
i->data = (int*) malloc(size * sizeof(int));
p = (void*) i;
break;
}
return p;
}