ヒープの破損により、C ++でエラーが検出されました

J.シン

これが私のコードです:

#include<iostream>
#include<cstdlib>

using namespace std;

int main() {
    int** arr=NULL;
    int num=0;
    cin >> num;
    int* big=NULL;
    arr = new int*[num];
    for (int i = 0; i < num; i++) {
        arr[i] = new int[5];
    }
    big = new int[num];

    for (int i = 0; i < num; i++) {
        for (int j = 0; j < 5; j++) {
            while (1) {
                cin >> arr[i][j];
                if (arr[i][j] >= 0 && arr[i][j] < 100)
                    break;
            }
        }
    }

    for (int i = 0; i < 5; i++) {
        big[i] = 0;
    }

    for (int i = 0; i < num; i++) {
        for (int j = 0; j < 5; j++) {
            if (big[i] < arr[i][j]) {
                big[i] = arr[i][j];
            }
        }
    }

    for (int i = 0; i < num; i++) {
        cout << "Case #" << i + 1 << ": " << big[i] << endl;
    }

    delete[]big;
    for (int i = num-1; i>=0; i--) {
        delete[]arr[i];
    }
    delete[]arr;

    return 0;
}

このコードを実行すると、ヒープ破損エラー(ヒープ破損が検出された)があると表示されます。コードの「新規」または「削除」部分にエラーがあると思いますが、見つかりません。誰かが答えてくれることを願っています。ありがとう。

マレクR

エラーはここにあります:

big = new int[num];
...
for (int i = 0; i < 5; i++) {
    big[i] = 0;
}

したがって、num5未満の場合は、配列の外側に書き込んでいます。

とにかくC ++を使用しているので、そのようなタスクにはベクターを使用してください。

#include<iostream>
#include<cstdlib>
#include<vector>

using namespace std;

int main() {
    vector<vector<int>> arr;
    int num=0;
    cin >> num;
    arr.resize(num, vector<int>(5));

    for (auto &row : arr) {
        for (auto &cell : row) {
            while (1) {
                cin >> cell ;
                if (cell >= 0 && cell < 100)
                    break;
            }
        }
    }

    vector<int> big(arr.size());
    for (int i = 0; i < arr.size(); i++) {
        for (auto &cell : arr[i]) {
            if (big[i] < cell) {
                big[i] = cell;
            }
        }
    }

    for (int i = 0; i < num; i++) {
        cout << "Case #" << i + 1 << ": " << big[i] << endl;
    }

    return 0;
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ヒープの破損が検出されました| C

分類Dev

エラーc ++アサーションの失敗ヒープの破損が検出されました

分類Dev

ヒープの破損が検出されましたか?

分類Dev

c ++ delete [] 2D配列によりヒープが破損しました

分類Dev

クラス内のいくつかの配列でdelete []を呼び出しているときに「ヒープ破損が検出されました」-C ++

分類Dev

C ++:通常のブロック後にヒープの破損が検出されました

分類Dev

C ++:通常のブロック後にヒープの破損が検出されました

分類Dev

デバッグエラー:ヒープの破損が検出されました

分類Dev

iOSエラー:ヒープの破損が検出され、空きリストが破損し、ガード値が正しくありません:0

分類Dev

デストラクタでヒープの破損が検出されました

分類Dev

ヒープ破損が検出されましたMalloc()Free()

分類Dev

ヒープ破損が検出されました-iPhone5Sのみ

分類Dev

文字列を削除した後、C ++でヒープ破損が検出されました

分類Dev

C-アレイを解放するときにヒープ破損が検出されました

分類Dev

通常のブロック後にヒープの破損が検出されました(#181)

分類Dev

通常のブロック #63 の後にヒープ破損が検出されました

分類Dev

ヒープ破損の問題-C

分類Dev

c ++プログラムの実行時にヒープが破損しましたエラー

分類Dev

C ++の多重継承とアップキャストされたスマートポインターの破壊により、VS2017でヒープが破損します

分類Dev

glibcでのvalgrindの出力により、C ++でエラーが検出されました

分類Dev

Cのヒープが破損していて、理由がわかりません

分類Dev

ヒープからの割り当て中に重大なエラーが検出されました

分類Dev

ヒープが破損しています。C#dllimport、delphiPCharの戻り値

分類Dev

ヒープの破損が検出されました:通常のブロック後(#176)

分類Dev

cコードで「glibcが検出されました」エラー

分類Dev

テンプレートの使用によりC / C ++最適化コンパイラが破損しました

分類Dev

エラー:名前の衝突が検出されました

分類Dev

ヒープの破損、C のエラー

分類Dev

印刷しようとしたときのヒープの破損

Related 関連記事

  1. 1

    ヒープの破損が検出されました| C

  2. 2

    エラーc ++アサーションの失敗ヒープの破損が検出されました

  3. 3

    ヒープの破損が検出されましたか?

  4. 4

    c ++ delete [] 2D配列によりヒープが破損しました

  5. 5

    クラス内のいくつかの配列でdelete []を呼び出しているときに「ヒープ破損が検出されました」-C ++

  6. 6

    C ++:通常のブロック後にヒープの破損が検出されました

  7. 7

    C ++:通常のブロック後にヒープの破損が検出されました

  8. 8

    デバッグエラー:ヒープの破損が検出されました

  9. 9

    iOSエラー:ヒープの破損が検出され、空きリストが破損し、ガード値が正しくありません:0

  10. 10

    デストラクタでヒープの破損が検出されました

  11. 11

    ヒープ破損が検出されましたMalloc()Free()

  12. 12

    ヒープ破損が検出されました-iPhone5Sのみ

  13. 13

    文字列を削除した後、C ++でヒープ破損が検出されました

  14. 14

    C-アレイを解放するときにヒープ破損が検出されました

  15. 15

    通常のブロック後にヒープの破損が検出されました(#181)

  16. 16

    通常のブロック #63 の後にヒープ破損が検出されました

  17. 17

    ヒープ破損の問題-C

  18. 18

    c ++プログラムの実行時にヒープが破損しましたエラー

  19. 19

    C ++の多重継承とアップキャストされたスマートポインターの破壊により、VS2017でヒープが破損します

  20. 20

    glibcでのvalgrindの出力により、C ++でエラーが検出されました

  21. 21

    Cのヒープが破損していて、理由がわかりません

  22. 22

    ヒープからの割り当て中に重大なエラーが検出されました

  23. 23

    ヒープが破損しています。C#dllimport、delphiPCharの戻り値

  24. 24

    ヒープの破損が検出されました:通常のブロック後(#176)

  25. 25

    cコードで「glibcが検出されました」エラー

  26. 26

    テンプレートの使用によりC / C ++最適化コンパイラが破損しました

  27. 27

    エラー:名前の衝突が検出されました

  28. 28

    ヒープの破損、C のエラー

  29. 29

    印刷しようとしたときのヒープの破損

ホットタグ

アーカイブ