【发布时间】:2013-10-21 23:43:41
【问题描述】:
我在我的项目中使用了 stl 容器,我发现了一个我无法解释的奇怪错误。让我们考虑以下代码:
#include <iostream>
#include <vector>
int main(int argc, char** argv)
{
std::vector<bool> vec;
vec.resize(5, false);
std::cout << vec.at(0);
}
这会按预期输出 0,但如果我使用 drmemory 运行内存检查,它会发现未初始化的读取。任何人都可以帮助理解这种行为吗?
平台:win32; 编译器:mingw32 - gcc 4.7.2; Drmemory 1.6.0 - 构建 2
【问题讨论】:
-
vector<bool>很奇怪。