私が発見した、次のように古典的な新しい/私たちのコードベースでの不一致エラーを削除します。新規/削除演算子のミスマッチエラーはどのくらい深刻ですか?
char *foo = new char[10];
// do something
delete foo; // instead of delete[] foo;
これがどれだけ深刻なのですか?メモリリークやエラーの原因になりますか?結果は何ですか?我々はいくつかのメモリの問題を持っているが、これはすべて私たちの症状(ヒープ破損など)を説明するのに十分な深刻なようではありません
EDIT:明瞭
ための余分な質問それだけで、配列の最初のメンバーを解放していますか?または
システムはアレイのトラックを失いますか?または
壊れたメモリは何らかの方法ですか?
素早くお返事ありがとうございます。だから本当に未定義?のように、誰も何が起こるか教えていただけませんか?それがそうであれば、私たちの観察を説明するかもしれません。 @AndrewS。 –
確かに定義されていない。たとえば、Visual Studioで "働いていた"ことを覚えています。 – cnicutar
未定義 - つまり、コンパイラ/ OSによって異なります。 –