ヒープ アドレスの増加についていくつか実験を行っていたところ、興味深いことが起こりました。(OS:CentOS、)
しかし、私は理解していません、なぜこれが起こったのですか?ありがとう!
これは私が最初にしたことです:
double *ptr[1000];
for (int i=0;i<1000;i++){
ptr[i] = new double[**10000**];
cout << ptr[i] << endl;
}
出力はインクリメンタルです (最後の数行):
....
....
0x2481be0
0x2495470
0x24a8d00
0x24bc590
0x24cfe20
0x24e36b0
0x24f6f40
0x250a7d0
0x251e060
次に、10000 を 20000 に変更しました。
double *ptr[1000];
for (int i=0;i<1000;i++){
ptr[i] = new double[**20000**];
cout << ptr[i] << endl;
}
アドレスは、スタック スペースのアドレス (およびデクリメンタル) のようになりました。
....
....
0x7f69c4d8a010
0x7f69c4d62010
0x7f69c4d3a010
0x7f69c4d12010
0x7f69c4cea010
0x7f69c4cc2010
0x7f69c4c9a010
0x7f69c4c72010
0x7f69c4c4a010
0x7f69c4c22010
0x7f69c4bfa010
0x7f69c4bd2010
0x7f69c4baa010
0x7f69c4b82010