Change the size of allocated memory.
Defined in <SDL3/SDL_stdinc.h>
void * SDL_realloc(void *mem, size_t size);
void * | mem | a pointer to allocated memory to reallocate, or NULL. |
size_t | size | the new size of the memory. |
(void *) Returns a pointer to the newly allocated memory, or NULL if allocation failed.
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:
mem
, it means that mem
was resized in place without freeing.mem
was freed and cannot be dereferenced anymore.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 fundamental alignment (alignof(max_align_t)
in C11 and later) or 2 * sizeof(void *)
, whichever is smaller.
It is safe to call this function from any thread.
This function is available since SDL 3.2.0.