alloca()

alloca.h 内で定義されるこの関数は、関数にローカルストレージを割り当てます。size バイトのメモリを指すポインタが返されます。デフォルトの実装では、スタック上に 8 バイト境界で整列されたメモリブロックが返されます。

alloca() から返されたメモリを free() に渡すことはできません。その代わり、alloca() を呼び出した関数が復帰したときに、そのメモリは自動的に解放されます。

Note

alloca() を関数ポインタを介して呼び出すことはできません。alloca()setjmp() の両方を同じ関数内で使用する場合は注意が必要です。これは、setjmp()longjmp() の呼び出しの間に alloca() によってメモリを割り当てると、そのメモリは longjmp() への呼び出しによって解放されるためです。

この関数は、多くの C ライブラリで一般的な非標準拡張です。

Show/hide構文

void *alloca(size_t size);

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0492EJ
Non-ConfidentialID081711