统一字符串的初始化向量会导致地址清理程序错误

时间:2015-07-04 21:07:39

标签: c++ string c++11 vector address-sanitizer

以前我有代码可以创建字符串向量并通过以下方法添加一个元素:

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并启用了地址消毒剂。

0 个答案:

没有答案