gpt4 book ai didi

c++ - 每次获取不同的地址

转载 作者:太空狗 更新时间:2023-10-29 20:03:55 27 4
gpt4 key购买 nike

在下面的代码中,我每次都为 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

最佳答案

因为调用时可能要为vector中包含的数据分配新的内存

 v.push_back(b);

附言

你说:

In the following code, I get a different address every time for the first element of std::vector v. Why is it so?

如果你看一下你的输出,并不是每次都这样:)

关于c++ - 每次获取不同的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24346445/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com