创建了一个vector,然后放入字符串类型的数据
char str[512] = "HAHAHAHAHA";
std::vector<const char*> vec;
vec.push_back(str);
memset(str, 0, 512);
最后遍历vector的时候发现是空值,原因是push_back的原型void push_back(const value_type& _Val)
,用的是引用的方式,所以变量的值改了,vec中的值就变了。
具体分析是不是这样,参考下面的文章:
参考文章1
参考文章2