我正在创建一个使用stings矢量作为成员变量的Windows应用程序。由于某种原因,我可以编译,但当它试图获取任何向量成员是崩溃。错误是0xC0000005:访问冲突读取位置0xcdcdcdd9。在vector类的成员函数中。
这是它破坏的size()函数。
size_type capacity() const
{ // return current length of allocated storage
return (this->_Myend - this->_Myfirst);
}
我正在使用2010年的视觉工作室。
谢谢你 Django的答案 0 :(得分:1)
问题不在于STL代码,而在于您的代码。
由于您没有粘贴代码,我将向您展示如何使用字符串向量的示例。
std::vector<std::string> v;
v.push_back("hello");
v.push_back("world!");
//Note the above 2 string literals get implicitly converted to std::string
assert(v.size() == 2);
assert(v[0] == "hello");
答案 1 :(得分:0)
。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Chat
{
protected:
vector<string> m_buffers;
public:
Chat();
~Chat();
};
在cpp
中Chat::Chat(){
string init = "test";
m_buffers.push_back(init); //crash
}
Chat::~Chat(){
}
抱歉没有代码......我在想什么(面掌)
答案 2 :(得分:0)
我以前遇到过这种事。最可能的原因是腐败堆。