you use realloc to add block ,but realloc may return a pointer
different from the previous, if this happen,
all the allocated object pointer will be invalid.
this is a serious issue.
so i advise not to use realloc, but alloc a new chunk, then use
lists to connect the chunks.