在下面的代碼中,我獲得了第一個元素std::vector v
的每次不同的地址。爲什麼這樣?每次獲取不同的地址
#include <memory>
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v;
for (int i=0; i<10; ++i)
{
int b = i;
v.push_back(b);
std::cout << std::addressof(v[0]) << std::endl;
}
return 0;
}
輸出:
0x603010
0x603030
0x603010
0x603010
0x603050
0x603050
0x603050
0x603050
0x603080
0x603080
現在你明白爲什麼[我說](https://stackoverflow.com/questions/24345183/comparing-stdaddressof-with-hexadecimal-number#comment37638310_24345183)比較元素的地址與數值是沒用的? – Praetorian
已經多次討論過重新分配 – texasbruce