私のC++アプリケーションに問題があります。それはMicrosoft Visual Studio 2008の32ビットPCで開発されましたが、今は64ビットPCで実行しようとしています。C++ 64bit、変数が見つかりません
私の32ビットPCではうまく動作します。 64bit PC上では、Visual Studioはコンパイルに問題はありませんが、実行時に間違った結果が出ます。 そして、私はなぜうんざりしています。
このコードでは、tipe "dag"の変数を定義します。これは直接非循環グラフの構造体です。ソフトウェアをデバッグすることで、私は後に、ソフトウェアがそれにデータを挿入することができない、私はそれを宣言したものの、ことに気づいて、デバッガは言う:
CXX0017: Error: symbol "dags" not found
は、ここに私のコードです:
Dag<int64_t>* dags = new Dag<int64_t>();
dags = getDagsFromRequest2(request, dags);
私がgetDagsFromRequest2()関数内のフローに従えば、データ変数がデータでいっぱいであることがわかります。「クイックウォッチ」では、その内部に2342個のノードが表示されます。しかし、私がgetDagsFromRequest2()関数からコードのこの部分に戻ってくると、デバッガは "CXX0017:Error:symbol"というダグを "見つけられません"と言います。どのように可能ですか?
また、このスクリーンショットを私のVisual Studioデバッグセットから見ることができます。
何が問題なのだろうか?
どうもありがとう
私はそれがアプリケーションの動作に影響を与えないデバッグ(多分リリースバージョンのため)の問題だと思う。 –
メモリリークの可能性があります。最初にポインタをメモリに割り当ててから、ポインタを上書きして他のメモリを指すようにします。 –
@ DavideChicco.itいいえ、デバッグする必要があります。しかし、ビルドモードには2つのオプションしかないはずです - リリースとデバッグ(私はDebug-x64を見たことがありません)。また、あなたのコードが –