我的C++應用程序出現問題。它是在Microsoft Visual Studio 2008上的32位電腦上開發的,現在我試圖在64位電腦上運行它。C++ 64位,變量未找到
在我的32位電腦上工作正常;在64位電腦上,Visual Studio不會給出任何編譯問題,但是在執行時會給出錯誤的結果。 而我不知道爲什麼。
在代碼中,我定義了一個變量「dag」,它是一個直接非循環圖的結構。通過調試程序時,我注意到,雖然我宣佈它,後來的軟件是不是能夠在它插入數據,調試器說:
CXX0017: Error: symbol "dags" not found
這裏是我的代碼:
Dag<int64_t>* dags = new Dag<int64_t>();
dags = getDagsFromRequest2(request, dags);
的很奇怪的是,如果我按照getDagsFromRequest2()函數中的流程,我可以清楚地看到dags變量充滿了數據:在「quickwatch」上,它顯示了2342個節點。但是當我從getDagsFromRequest2()函數返回到代碼的這一部分時,調試器會顯示「CXX0017:Error:symbol」dags「找不到」。這怎麼可能?
您還可以從我的Visual Studio調試集中看到此截圖。
可能是什麼問題呢?
非常感謝
我認爲這只是調試問題(可能是發佈版本的原因),它不會影響應用程序行爲。 – 2012-03-13 11:26:25
您可能有內存泄漏。首先將內存分配給指針,然後覆蓋指針指向其他內存。 – 2012-03-13 11:36:07
@ DavideChicco.it不,它應該在調試。但我認爲你應該只有兩種選擇構建模式 - 發佈和調試(我從來沒有見過Debug-x64)。此外,這是一個調試器問題,因爲您的代碼編譯 – 2012-03-13 11:36:33