3
Linuxでスタック割り当てはどのように機能しますか?
OSは、スタックまたは他の何かのために有効な仮想スペースの固定量を予約しますか?大きなローカル変数を使用するだけでスタックオーバーフローを生成できますか? C仮定をテストするための小さなプログラムを作成しました。X86-64 CentOS 6.5で実行されています。 #include <string.h> #include <stdio.h> int main() { int n = 10240 * 1024; char a[n]; memset(a, 'x', n); printf("%x\n%x\n", &a[0], &a[n-1]); getchar(); return 0; } プログラムを実行する&a[0] = f0ceabe0と&a[n-1] = f16eabdf procマップはスタックを示します: 7ffff0cea000-7ffff16ec000. (10248 * 1024B) それから私は増加しようとしました n = 11240 * 1024 プログラムを実行する&a[0] = b6b36690と&a[n-1] = b763068f …