[so] Macro-ul DIE - improved

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Sun Mar 22 13:04:52 EET 2015


2015-03-22 12:57 GMT+02:00 Marius Ungureanu <therzok at gmail.com>:
> 2015-03-22 12:52 GMT+02:00 Razvan Deaconescu via so <so at cursuri.cs.pub.ro>:
>> Nu înțeleg nevoia acestor două noi macro-uri, mai complicate. Când un
>> proces se încheie (cu exit), _toate_ resursele sale sunt eliberate:
>> fișiere închise, memorie dezalocată etc. Nu văd nevoia acelor funcții de
>> cleanup.
>
> Cand rulezi procesul cu valgrind si fortezi o eroare, valgrind spune ca ai leak.
>
> int *array1 = malloc(size1 * sizeof(int));
> DIE(!array1, "malloc1 fail"); /* Asta e ok. */
> int *array2 = malloc(size2 * sizeof(int));
> DIE(!array2, "malloc2 fail"); /* Valgrind spune ca array1 e leaked. */
>
> Eu de asta l-am folosit si cred ca e mai bine sa nu ai false-positive
> output in acest caz.

Aia e o aberație a Valgrind-ului. Nu recomand să compensăm un neajuns
al unui software cu macro-uri complicate sau alte construcții
convolute. Keep it simple, make it happen, laugh in the face of
danger.

Răzvan


More information about the so mailing list