realloc function

the new memblock keep the shortest length of data of new and old
memblock, the return memblock's address is not guaranteed the same.