Zmenseni objektu pomoci realloc (a Electric Fence)
Cejka Rudolf
cejkar na kazi.dcse.fee.vutbr.cz
Pondělí Leden 31 17:20:39 CET 2000
Jan Kasprzak <kas na informatics.muni.cz> wrote:
> pri ladeni programu pomoci Electric Fence jsem narazil na problem:
> Pokud zavolam realloc() a pozaduji velikost objektu zmensit (nikoli zvetsit),
> muze mi realloc() vratit jiny pointer, nebo musi zachovat ten puvodni? Vypada
Ja to chapu tak, ze muze vracet libovolny pointer. Co neni zakazano, je
dovoleno - a u realloc() se pise pouze o zachovavani obsahu, nikoli
o zachovavani pointeru. Dival jsem se na manualove stranky ruznych
OS - a vzdy explicitne zminuji zachovavani obsahu, ale o pointeru se
psalo jen v souvislosti s moznosti jeho zmeny. Nic vic.
> Single Unix Spec pise:
> : If the new size of the memory object would require movement of the object,
> : the space for the previous instantiation of the object is freed.
> coz nic vlastne nerika :-(
Myslim, ze kdyz se v SUS explicitne o zachovavani pointeru nic nerika,
tak to znamena, ze se pointer proste muze zmenit a na jeho zachovani
neni mozne se spolehat.
--
Rudolf Cejka (cejkar na dcse.fee.vutbr.cz; http://www.fee.vutbr.cz/~cejkar)
Brno University of Technology, Faculty of El. Engineering and Comp. Science
Bozetechova 2, 612 66 Brno, Czech Republic
Další informace o konferenci Linux