Portál AbcLinuxu, 13. května 2024 06:36
malloc()
, alokuje se o trochu větší blok, na začátek se zapíše jakási hlavička (u glibc AFAIK 8 byte) a pointer, který dostanete, ukazuje až za ni. Funkce free()
pak odečte délku té hlavičky a tam najde vše potřebné. Proto je tak riskantní volat free()
na pointer, který nebyl získán pomocí malloc()
(nebo jeho sourozenců).
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.