// 获取当前的top chunk,并计算其对应的大小
size = chunksize(victim);
// 若 top chunk 的size 大于 请求大小+32Byte 就可以直接进行分割
if ((unsigned long) (size) >= (unsigned long) (nb + MINSIZE))
remainder_size = size - nb;
remainder = chunk_at_offset(victim, nb);
// #define chunk_at_offset(p, s) ((mchunkptr)(((char *) (p)) + (s)))
//更新 main_arena 中 topchunk 地址 ,new_topchunk_addr=topchunk_addr+请求大小nb
set_head(victim, nb | PREV_INUSE |
(av != &main_arena ? NON_MAIN_ARENA : 0));
set_head(remainder, remainder_size | PREV_INUSE);
check_malloced_chunk(av, victim, nb);
void *p = chunk2mem(victim);