私は初心者のコンピュータサイエンスの生徒で、バブルがランダムに割り当てられたフロートの配列をソートし、バイナリチョップ検索を使用して値を見つけるC++プログラムを作成しています配列内の最後の要素の(コードのタイミングを一致させるための一貫性のため)。ブースト日付時刻ライブラリとVisual Studio 2008を使用するとランタイムチェックに失敗する
バブルソートやバイナリチョップの検索を実行したいのですが、C++標準のタイムライブラリは2番目のレベルの精度しか得られません。このコードはほとんどの場合1秒未満で実行されるので使用できません。
私はブーストを発見したと私はブーストのDateTimeライブラリ内のマイクロ秒のクロックを使用してコードの実行のサブ秒の精度のタイミングを得るための方法として、それを使用しようとしています。私が使用しているコードはhttp://pastebin.com/U8D0s2hbです。このコードを実行すると、Visual Studio 2008から次のエラーが発生します。
ランタイムチェック失敗#0 - ESPの値が関数呼び出しで正しく保存されませんでした。これは通常、異なる呼び出し規約で宣言された関数ポインタを持つ呼び出し規約で宣言された関数を呼び出した結果です。
犯人はPTIMEオブジェクトとして時間を取得しているように見えるが、私は前に、ランタイムチェックの失敗のエラーを見たことがないよう、なぜ見当がつかない。
ご協力いただきありがとうございます。
私はProject PropertiesFrédéricのStructure Member Alignmentをチェックしました。デフォルトで設定されていました。私はまた、改善なしでそれの下のすべての設定を試してみました。私はBoostの経験がないので、次に何を試していいのか分かりません。 –
@Daniel、同じコンパイラで 'boost'自体をコンパイルできますか?結果として得られる図書館のABIは、お客様のクライアントコードに近いものとなり、おそらくより効果的です。 –