目次 - SDL 3.0 API(機能別) - 標準ライブラリ - SDL_stack_alloc

SDL_stack_alloc

(可能ならば)スタックにメモリを確保する

ヘッダ

SDL3/SDL_stdinc.h

構文

#define SDL_stack_alloc(type, count) (type*)alloca(sizeof(type)*(count))

引数

type確保するメモリのデータ型
count確保するメモリの型オブジェクトの数

戻り値

(void *) 確保したメモリへのポインタを戻す. 確保に失敗したときNULLを戻す.

詳細

現在の環境でSDLがalloca()にアクセスする方法を知っていれば, それを使用してスタック上にメモリを確保する. そうでなければ, SDL_malloc()でヒープ上のメモリを確保する.

スタックメモリでない可能性があるため, 戻り値がNULLかチェックし, 使用を終えたらSDL_stack_freeで解放することが重要である. スタックメモリの可能性があるため, 大きすぎるメモリを確保しないこと, 関数から戻らずにループ内で確保しないことが重要である. さもないとスタックがオーバーフローするだろう.

スレッドセーフ

この関数はどのスレッドからも安全に呼べる.

関連項目

バージョン

SDL 3.2.0以降

SDL Wikiへのリンク

SDL_stack_alloc - SDL Wiki