- ,
, .
.
~ 1 1, 0x01, 0xFE
*p = *p & ~1; /* clear allocated flag */
0xFFFFFFFE
(1111 1111 1111 1111 1111 1111 1111 1110)
.
.
, p - 0xFFFFFFFE, ,
(, 1, ).
next = (unsigned*)((char*)p + *p);
'next' - ,
p + [ ]
if ((*next & 1) == 0) /* if not allocated... */
*p += *next; /* add to this block */
'next' ( AND),
'p' 'next' 'p'.
, , , , ( ).
. , .