Portál AbcLinuxu, 14. května 2025 01:33
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.