簡體   English   中英

刪除動態數組C ++時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM