私は学校のソートアルゴリズムに取り組んでおり、奇妙な問題に遭遇しました. 6 要素を超える整数配列を作成するたびに、「free.c」でブレークが発生し、ヒープ破損エラーが発生します。
私が絞り込んだコードは次のとおりです。
#include <iostream>
using namespace std;
int main(){
int * pie = new int(7);
pie[6] = 1;
cout << pie[6];
return 0;
}
最後の値以外のものを割り当てる必要がある場合もありますが、複数のコンピューターの Visual Studio 2012 および 2010 でこのエラーが発生することがありますが、Linux ではこのコードは完全に正常に動作します。
これは Windows の問題ですか?動的な int 配列を永遠に間違っていたのでしょうか?
注:これを数回実行した後、VS の出力にヒープ保護シャントの追加に関する何かが表示されることがあります。これにより、例外をスローするテストを解決しているように見えますが、大規模なアプリケーションの問題は解決されません (そして、私のコードにそのような保護を適用する必要があります)。
ありがとう!