>>280
ふむ、確かに一考の余地はあるかと思う。多くの脆弱性が...

void foo()
{
 char buff[10];
 gets(buff);
 ...
}

のようなプログラム対して、10バイト以上の入力を与えてリターンアドレスを書き換えてるから、そう言うのに対しては有効だと思う。

ただもちろん、

void foo()
{
 char buff[10];
 void (*f)();
 ...
 f = bar;
 gets(buff);
 f();
 ...
}

なんてコードなら、ダメなこともありえる。

スタックが減少方向なのは、多くのシステムメモリレイアウトがヒープとスタックを両方から使うようになっていて、ヒープが下位から、スタックが上位から下位方向に使うためだったと思う。

確かに、ヒープとスタックを入れ替えてもあんまり支障はなさそうだから、そう言うプロセッサ作ってみては ? > Intel アーキテクチャ様