0

在执行下面的代码时出现错误:_BLOCK_TYPE_IS_VALID。我认为这与将另一个对象添加到向量有一些共同点,但我不知道我在哪里犯了错误。我不添加类代码,因为该程序的先前版本是在没有使用矢量的情况下编写的,并且运行良好。如果有必要,我可以将变量名称翻译成英文或解释使用哪个变量。

#include "stdafx.h"
#include "CStop.h"
int _tmain(int argc, _TCHAR* argv[])
{
vector<CStop>Stops;

string* array= NULL;
string name,text;
int length,time,howMany,n;

cout<<"How many stops? "<<endl;
cin>>n;

for(int i = 0; i < n; i++)
{
    cout<<"Type name, length , time, how many stops"<<endl;
    cin>>name>>length>>time>>howMany;
    if(howMany> 0)
    {
        cout<<"Type stops names"<<endl;
        array= new string[howMany];
        for(int i = 0; i<howMany;i++)
        {
            cin>>text;
            array[i] = text;
        }
    }
    CStops temp(name, length,time,howMany,array);
    Stops.push_back(temp);

    if(howMany> 0) delete[] array;
}

for(int i=0;i<Stops.size();i++)
{
    cout<<Stops[i].Info()<<endl;
}
return 0;
}

在此先感谢您的帮助。

4

1 回答 1

0

我解决了我重写类代码的问题。我在课堂上添加了对向量的支持。我仍然不知道为什么当类在数组上运行时我得到这个奇怪的错误但是当它不是一切正常时。如果有人能告诉我这个错误的含义以及如何避免它,我将不胜感激。

于 2012-07-04T19:57:58.557 回答