问题说明了一切,但这里有一个例子:
typedef struct mutable_t{
int count, max;
void **data;
} mutable_t;
void pushMutable(mutable_t *m, void *object)
{
if(m->count == m->max){
m->max *= 2;
m->data = realloc(m->data, m->max * sizeof(void*));
}
// how to handle oom??
m->data[m->count++] = object;
}
如何处理内存不足而不是 NULL 我的所有数据?
编辑 - 让我们假设可以做一些事情,例如在某处释放一些内存,或者至少告诉用户“你不能这样做 - 你内存不足”。理想情况下,我想留下分配在那里的东西。