The memory returned by this function must be freed with
SDL_free ().
If size is 0, it will be set to 1. Note that this is unlike some other C runtime realloc implementations,
which may treat realloc(mem,0) the same way as free(mem) .
If mem is NULL, the behavior of this function is equivalent to
SDL_malloc (). Otherwise, the function can have one of three possible outcomes:
• If it returns the same pointer as mem , it means that mem was resized
in place without freeing.
• If it returns a different non-NULL pointer, it means that mem was freed
and cannot be dereferenced anymore.
• If it returns NULL (indicating failure), then mem will remain valid and
must still be freed with SDL_free ().
If the allocation is successfully resized, the returned pointer is guaranteed to be aligned to either the
fundamentalalignment ( alignof(max_align_t) in C11 and later) or 2sizeof(void ) , whichever is smaller.