avr-libc  2.0.0
Standard C library for AVR-GCC

AVR Libc Home Page

AVRs

AVR Libc Development Pages

Main Page

User Manual

Library Reference

FAQ

Example Projects

関数
<alloca.h>: スタック内スペースの確保

関数

void * alloca (size_t __size)
 

説明詳細

関数説明

void* alloca ( size_t  __size)

呼出し元のスタックフレーム空間に__sizeバイトを確保します。

この一時的な空間は、alloca()の呼出し元の関数が終わる時に自動的に開放されます。Avr-libcは、 alloca()をマクロとして定義しています。そして、インライン実装された__builtin_alloca()関数に変換されます。コードがインライン実装されているということは、この関数のアドレスを認識することは不可能であり、他のライブラリとリンクされることで動作が変ることを意味しています。

返値
alloca()は、割り当てた空間の開始アドレスのポインタを返します。 空間確保がスタックオーバーフローをの原因となるなら、プログラムの動作は未定義です。
警告
alloca()を関数呼出しの引数のリストに含めるのは避けてください。