Allocate memory on the stack (maybe).
Defined in <SDL3/SDL_stdinc.h>
#define SDL_stack_alloc(type, count) (type*)alloca(sizeof(type)*(count))
type | the datatype of the memory to allocate. |
count | the number of type objects to allocate. |
Returns newly-allocated memory, or NULL on failure.
If SDL knows how to access alloca() on the current platform, it will use it to stack-allocate memory here. If it doesn't, it will use SDL_malloc() to heap-allocate memory.
Since this might not be stack memory at all, it's important that you check the returned pointer for NULL, and that you call SDL_stack_free on the memory when done with it. Since this might be stack memory, it's important that you don't allocate large amounts of it, or allocate in a loop without returning from the function, so the stack doesn't overflow.
It is safe to call this macro from any thread.
This macro is available since SDL 3.1.3.