malloc non ritorna NULL quando la memoria è esaurita, ma quando non riesce ad allocarla (per un motivo qualunque). Quindi, dopo un'invocazione fallita di malloc (ovvero, malloc ha restituito NULL), la memoria non è di certo cambiata. Non ha, quindi, alcun senso controllare cosa succede alla memoria DOPO che tale invocazione è fallita. Ha senso controllare PRIMA se la memoria è sufficiente per l'invocazione richiesta.


Ciao.