1

私はテストプログラムで多くの間違いを犯します!!!

ソースのデバッグ: http://www.cppblog.com/Files/mymsdn/cvector-windows-has-triggered-a-breakpoint-in-cvector.zip

正しいバージョン: http://www.cppblog.com/Files/mymsdn/cvector-svn-version-10.zip

ベクトル構造の C 言語バージョンを作成しようとしています。

コードを実行しようとすると (Microsoft Visual Studio 2008 では、デフォルトのショートカットは CTRL+F5 です)。正しい結果を出力する正しい論理として実行できます。

しかし、デバッグモードで実行しようとすると(Microsoft Visual Studio 2008では、デフォルトのショートカットはF5です)。問題が発生します: (これは出力ウィンドウからのものであり、それを報告するアラート フレームもあります)

ヒープ [cvector.exe]: ヒープ: 解放された後、393190 で変更された解放ヒープ ブロック 393168 Windows は、cvector.exe でブレークポイントをトリガーしました。

これは、ヒープの破損が原因である可能性があります。これは、cvector.exe または読み込まれた DLL のバグを示しています。

これは、cvector.exe にフォーカスがあるときにユーザーが F12 キーを押したことが原因である可能性もあります。

出力ウィンドウには、より多くの診断情報が表示される場合があります。

エラー
(ソース: cppblog.com )

4

2 に答える 2

4

このエラーは、実際には「所有」していないメモリ アドレスに書き込んだことを意味します。たとえば、メモリが解放された後にメモリに書き込んnewだりmalloc、またはで実際に割り当てた領域の外に書き込んだり、単純なポインタを介して書き込んだりしています。違う。

于 2011-07-26T22:57:23.117 に答える
1

デバッグ設定を確認してください。「アンマネージ コードのデバッグ」と「SQL Server のデバッグ」をオフにします。

Oracleコンポーネントでこれを取得していたとき、それは私にとってはうまくいきました。コンティニューを押し続けていれば、ブレークエラーは発生せず、プログラムは進み続けました。これらのデバッグ オプションをオフにすると、プログラムは続行され、プログラムは動作するようになります。

于 2011-07-26T22:55:05.010 に答える