void * SDL_realloc(void *mem, size_t size);
| void * | mem | 確保または再確保するメモリへのポインタ, またはNULL |
| size_t | size | メモリの新しいサイズ |
(void *) 新たに確保したメモリへのポインタを戻す. 確保に失敗したときNULLを戻す.
この関数が戻したメモリはSDL_free()で解放する必要がある.
sizeが0の場合, 1が設定される.
これはrealloc(mem, 0)をfree(mem)として扱う一部のCランタイムのreallocとは異なるので注意すること.
memがNULLの場合, この関数はSDL_mallocと同じ動作となる.
それ以外の場合, 次の3つの内の1つがありうる:
memと同じポインタが戻る. これはmemが解放されずに同じアドレスでサイズが変更されたことを意味する.
memが解放され参照できなくなったことを意味する.
memは有効のままで, 依然としてSDL_free()で解放する必要がある.
メモリの確保が成功した場合, 戻されたポインタのアライメント(メモリ配置の境界)は, その環境で最も大きなアライメント(C11以降ならばalignof(max_align_t)), または2 * sizeof(void *)のどちらか小さい方であることが保証されている.
この保証よりも大きなアライメントが必要な場合はSDL_aligned_alloc()を使用すること.
この関数はどのスレッドからも安全に呼べる.