[OSy] malloc(0)

Ondrej Dolejš kajakar at atlas.cz
Sun Dec 3 16:21:44 CET 2006


Dobry den,
zda se mi, ze uz predpoklad teto diskuze ("testy to netestuji") neni splnen, a tak jsou zavery neplatne :-). V testu area1 3. volani zkousi alokovat blok nulove velikosti a ocekava EINVAL...
              Zdravi
                          Ondra Dolejs a DoDuSte [PyJaMas]

>-----Puvodni zprava-----
>Od: Martin Decky [mailto:decky at nenya.ms.mff.cuni.cz]
>Odesláno: 3. prosince 2006 12:10
>Komu: Operating Systems Course
>Předmět: Re: [OSy] malloc(0)
>
>
>Hezky den,
>
>> Ja bych se k tomu postavil pragmaticky. Co vlastne rika uzivatel, kdyz
>> zavola malloc(0)? Nerika "ja chci blok velikosti nula", ale "ja nechci
>> zadnou pamet".
>> A co udelame, kdyz uzivatel zadnou pamet nechce? No, proste mu zadnou
>> nedame. Takze bych vratil NULL a nelamal si s tim hlavu :o)
>
>Dovedu si predstavit situaci, kdy to opravdu znamena "chci blok
>velikosti nula" (tj. chci platny ukazatel, ktery neukazuje na zadna
>data). Timto druhym zpusobem by se to melo chovat v pripade, ze
>navratova hodnota NULL skutecne znamena "alokace se nepovedla", protoze
>i alokace bloku nulove delky se nekdy nemusi podarit (napr. kdyz
>alokator uz nema misto ve svych internich strukturach).
>
>Dale je vhodne uvazit, ze operace malloc() a free() jsou parove. Takze
>pokud p = malloc(0), mel by se free(p) chovat korektne (bud funguje
>free(NULL), nebo malloc bude vracet platny ukazatel).
>
>
>M.D.
>_______________________________________________
>OSy mailing list
>OSy at nenya.ms.mff.cuni.cz
>http://nenya.ms.mff.cuni.cz/mailman/listinfo/osy





More information about the NSWI004 mailing list