Windows API的STL成员变量初始化问题

时间:2010-05-19 01:11:17

标签: c++ stl winapi

我正在创建一个使用stings矢量作为成员变量的Windows应用程序。由于某种原因,我可以编译,但当它试图获取任何向量成员是崩溃。错误是0xC0000005:访问冲突读取位置0xcdcdcdd9。在vector类的成员函数中。

这是它破坏的size()函数。

size_type capacity() const
{ // return current length of allocated storage
  return (this->_Myend - this->_Myfirst);
}

我正在使用2010年的视觉工作室。

谢谢你 Django的

3 个答案:

答案 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)

我以前遇到过这种事。最可能的原因是腐败堆。