プロジェクトで 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