[OSy] malloc(0)

Jiri Tousek jiri.tousek at gmail.com
Sun Dec 3 16:34:26 CET 2006


To ale zkousi volani vmalloc(0), ne malloc(0).

J.T.

On 12/3/06, Ondrej Dolejš <kajakar at atlas.cz> wrote:
> 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
>
>
> _______________________________________________
> 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