[so] Verificare return code for malloc()

Vlad Dogaru ddvlad at rosedu.org
Thu Mar 1 01:18:03 EET 2012


2012/3/1 Alexandru Juncu <alexandru.juncu at cs.pub.ro>:
> 2012/3/1 Andrei Picus <office.nightcrawler at gmail.com>:
>> Hello,
>>
>> La temele de la SO, ar trebui sa verificam daca malloc() se executa cu
>> succes? Nu intreb daca e good practice, ci daca se va depuncta daca n-o
>> facem?
>
> Vezi lista de indicații generale [0].
>
> -0.2: nu sunt verificate valorile de retur ale funcțiilor;
>
> De asemenea, dacă știi că lucurile ar trebui să fie făcute într-un fel
> recomandat, de ce nu ai face asta pur și simplu?
>
> [0] http://elf.cs.pub.ro/so/wiki/teme/general

A verifica valoarea întoarsă de malloc e discutabil.  Să luăm cele două cazuri:

* malloc întoarce NULL.  Your fscking screwed.  Nu ai cum să mori
gracefully, ai cam rămas fără memorie virtuală (sau mai rău).  Might
as well just segfault, eventual oferi un core dump util dacă e
enabled.

* malloc nu întoarce NULL.  This is >99% of calls.  Rezultă o grămadă
de cod de error handling care nu e testat, deci probabil e buggy.

În kernel space lucrurile nu stau la fel, of course :)

Vlad


More information about the so mailing list