0x663FCCD2的第一次机会异常(msvcp110d.dll)

时间:2013-02-24 01:57:58

标签: c++ vector copy first-chance-exception

我正在为学校做一个项目,但我遇到了打嗝。

我有一个名为scheme的类,它由另一个名为"Token"的类组成。计划如下:

class scheme
{
public:
    Token * id;
    vector <string> Paren;
    vector <Token> idList;

    scheme();
    void addScheme(vector <Token> toAdd);
};

到目前为止一切顺利。但现在我在函数“addScheme”中,看起来像这样:

void scheme::addScheme(vector <Token> toAdd)
{
    //Check if scheme is valid
    if (isSchemeValid(toAdd) == false)
    {
        cout << "ERROR!" << endl;
        return;
    }

    vector <Token> ids;

    for (int i = 2; i < toAdd.size()-1; i++)
    {
        ids.push_back(toAdd.at(i));
    }


    *id = toAdd.at(0);
    Paren.push_back("(");
    Paren.push_back(")");

    idList = ids;
}

直到最后一部分说

,我才有问题
idList = ids;

以某种方式导致错误:

  

“CS Proj中的0x663FCCD2(msvcp110d.dll)的第一次机会异常2.exe:0xC0000005:访问冲突写入位置0x009DD1B8。”

我尝试手动将其循环到idList中,如下所示:

for (int i=0; i< ids.size(); i++)
{
    idList.push_back(ids.at(i));
}

但是会引发此错误:

  

“CS Proj 2.exe中的第一次机会异常0x00348255:0xC0000005:访问冲突读取位置0x8B0C4295。”

所以......我没有想法。为什么我不能将id向量复制到idList向量中?

感谢您的帮助!

0 个答案:

没有答案