2014-06-30 41 views
-1

我試圖編譯英特爾C \ C++編譯器進行簡單的測試項目上的Visual Studio 2013年如何降低錯誤檢查水平,英特爾C C++編譯器

我已經編寫這個測試在Linux上,其中GCC編譯的代碼沒有任何錯誤和應用程序運行正常,但在VS 2013英特爾編譯返回我這些錯誤

ID  Type       Sources  Modules  Object Size State 
P1  Unhandled application exception source.c MyTest.exe    Not fixed 
P2  Memory leak      source.c MyTest.exe 23984  New 
P3  Memory leak      source.c MyTest.exe 19980008 New 
P4  Invalid memory access   source.c MyTest.exe    Not fixed 
P5  Invalid memory access   source.c MyTest.exe    Not fixed 
P6  Uninitialized memory access  source.c MyTest.exe    Not fixed 

這似乎是由事實我不取消分配以前的一些分配造成的內存blo cks ...因爲這是一個測試應用程序,我不想花費時間來查找錯過的重新分配會導致問題,我想知道是否有辦法降低intel編譯器的「嚴重性」,以便它可以忽略這些問題(和gcc一樣)。

回答

0

Memory Leak如果這只是一個測試應用程序,您可以忽略它。

不過,您是如何訪問未初始化的內存(P6),無效的內存訪問(P4,P5)和未處理的異常(P1)?

這些對我來說似乎相當嚴重,即使是測試應用程序。

+0

但該程序有一個預定義的輸入和在linux上的gcc編譯和程序完成執行沒有任何錯誤。在Linux下使用gcc無論如何都不會遇到嚴重的問題,程序可以編譯並運行 – AndreaF

+0

如果您有未初始化的內存和無效訪問,您的程序*可能*此時運行正常,並且下次可能*失敗。它是[**未定義的行爲**](http://en.wikipedia.org/wiki/Undefined_behavior) – abelenky

+0

我已經在linux上運行這個代碼至少100次以進行性能評估,沒有任何崩潰......聽起來很奇怪。另外,如果輸入始終是相同的,並且例程始終是相同的,那麼行爲就不是這樣*未定義* – AndreaF

相關問題