AVR Libc Home Page AVRs AVR Libc Development Pages
Main Page User Manual Library Reference FAQ Alphabetical Index Example Projects

<alloca.h>: スタック内にメモリスペースを確保する


Functions

void * alloca (size_t __size)

Detailed Description


Function Documentation

void* alloca ( size_t  __size  ) 

__size バイトのメモリスペースを呼び出し側のスタックフレームに確保します。

このテンポラリスペースはalloca()を呼び出した関数が呼び出した側に帰る時に、自動的に解放されます。(関数自体のスタック消費にくっつけて確保する)
Avr-libc は alloca() をマクロとして定義し、インラインの__builtin_alloca() 関数に展開されます。コードはインライン埋め込みされますので、この関数のアドレスを得たり他のライブラリにリンクして機能を改変したりすることはできません??

Returns:
alloca() は確保されたスペースへのポインタを返します。割り当てがスタックオーバーフローを引き起こす場合は、プログラムの振る舞いは未定義となります。
Warning:
alloca() を関数コールの内部で使用するのは避けてください。