C言語なら俺に聞け(入門篇) Part 42
■ このスレッドは過去ログ倉庫に格納されています
0783デフォルトの名無しさん
2009/01/21(水) 18:45:26スタック方式に話を限定するけど
alloca()で確保された領域をいつ開放するべきかを決定する要素が「関数を抜けるとき」しかない
だからその他のローカル変数同様に確保する領域をスタック上に積んで
(よーするにローカル変数な配列のサイズをあとで決めるということだが)
それへのポインタを返すことになるわけだが、
問題はalloca()から制御が帰ってくるまで「現在のスタックの大きさ」が確定しないことにある
その状態で別の関数を呼び出す準備をはじめたら、
つまりalloca()から帰る前のスタックに値を積みはじめたらきっとひどいことになる
■ このスレッドは過去ログ倉庫に格納されています