以前我有代码可以创建字符串向量并通过以下方法添加一个元素:
std::vector<std::string> attempt_one;
attempt_one.emplace_back( "Hello, world!" );
此代码按预期编译和工作。如果我试图改为创建字符串向量
std::vector<std::string> attempt_two{ "Hello, world!" };
代码编译正常,但是在启用了地址清理程序的情况下编译时,代码在运行时失败并出现错误:
Sanitizer CHECK failed: /...long_path.../asan_mapping.h:179 ((AddrIsInMem(p))) != (0) (0, 0)
我第二次尝试创建导致此错误的向量时出现了什么错误?作为参考,这是Clang 3.7,其中-std = c ++ 11并启用了地址消毒剂。