执行下面的代码时,我收到错误:_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;
}
提前感谢您的帮助。
答案 0 :(得分:0)
我解决了我的问题我的重写类代码。我在课堂上添加了对矢量的支持。我仍然不知道为什么当类在数组上运行时我得到了这个奇怪的错误,但是当它不是一切都工作的时候。如果有人能告诉我这个错误的含义以及如何避免错误,我将不胜感激。