[英]Error when deleting dynamic array c++
我的程序觸碰此代碼時,出現運行時錯誤。 我確定刪除操作是造成此錯誤的原因,但我只是看不到出了什么問題。
下面是函數:(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-> nBlockUse)
只需使用std::vector
,避免痛苦。
對於給定的代碼,請注意new[]
需要delete[]
,而不是普通的單對象delete
。
使用std::vector
,只計算用戶輸入的記錄要容易得多,而不用預先詢問多少條記錄。 對於輸入的每個記錄,使用push_back
將其添加到向量的末尾。 然后從一個空向量開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.