我的程序遇到此代码时出现运行时错误。我确信删除是造成它的,我只是看不出有什么问题。
这是函数:( FavShows是前面定义的类)
void classInit()
{
int numOfRecs;
cout << "How many records will you enter?" << endl;
cin >> numOfRecs;
FavShows *m = new FavShows[numOfRecs];
for( int i = 0; i < numOfRecs; i++)
{
m[i].initRec();
}
for( int i = 0; i < numOfRecs; i++)
{
m[i].printRec();
}
delete m;
}
我收到的错误说明: 错误是在dbgdel.cpp中(我假设这是其中一个库的成员) 表达:_BLOCK_TYPE_IS_VALID(pHead-&GT; nBlockUse)
答案 0 :(得分:3)
只需使用std::vector
,避免痛苦。
对于给定的代码,请注意new[]
需要delete[]
,而不是普通的单个对象delete
。
使用std::vector
,用户输入的记录计数会更容易,而不是预先询问多少。对于输入的每条记录,使用push_back
将其添加到向量的末尾。然后从空矢量开始。