約 20 個の bool の配列を次々と繰り返し処理し、それぞれのメモリ アドレスを出力する 2 つのループがあります。
for (int i = 0; i < 20; ++i) {
printf("%p\n", &_boolArray[i]);
}
for (bool b : _boolArray) {
b = true;
printf("%p\n", &b);
}
出力は両方の配列でまったく同じになると思います。私が得たのは少し違うものでした:
0x102eeefb0
0x102eeefb1
0x102eeefb2
0x102eeefb3
0x102eeefb4
0x102eeefb5
...
0x7fff5ce8b9bf
0x7fff5ce8b9bf
0x7fff5ce8b9bf
0x7fff5ce8b9bf
0x7fff5ce8b9bf
配列を埋めるためのより良い方法があることは知っていますが (std::fill)、なぜこれが起こっているのか知りたいです。