Вопрос говорит все, но вот пример:
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 из всех моих данных?
edit - допустим, что есть что-то, что можно сделать, например. освободите какую-нибудь память где-нибудь или, по крайней мере, сообщите пользователю: "вы не можете этого сделать, у вас не хватает памяти". В идеале я хотел бы оставить то, что там было выделено.