gpt4 book ai didi

c++ - 未初始化的类字段和 STL 容器

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:31:45 26 4
gpt4 key购买 nike

在将对象放入其中之前,STL 默认分配器是否将原始内存清零?请参阅此代码。评论反射(reflect)了我平台上的行为。

#include <iostream>
#include <vector>

struct Foo
{
Foo() {} // n isn't initialized
int n;
};

int main()
{
std::vector<Foo> v(2); // zeroed
std::cout << v[0].n << '\n';
std::cout << v[1].n << '\n';

Foo foo; // contains garbage
std::cout << foo.n << '\n';
}

是否可以禁用清零原始内存?注意,它与初始化 POD 的值不同。

最佳答案

它可能会清零内存。它可能不会。它可能会从您最喜欢的已经清零的操作系统中恢复它——我知道 Windows 有清零内存的习惯。有一件事是肯定的 - 它没有定义,您不会在标准 API 中找到它的任何控制设置。

关于c++ - 未初始化的类字段和 STL 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7078553/

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