Shrinks or expands a previously allocated memory block.
addr must point at a variable containing the address of the memory block.
len is the new size of the block.
You should use this function instead of realloc() if you need to allocate memory, as this function
raises an error if the allocation failed, and the interpreter will tell you if you forgot to release