質問はそれをすべて言いますが、ここに例があります:
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にするのではなく、メモリ不足を処理するにはどうすればよいですか?
編集-実行できることがあると仮定しましょう。たとえば、どこかでメモリを解放するか、少なくともユーザーに「それはできません。メモリが不足しています」と伝えます。理想的には、そこに割り当てられたものを残したいと思います。