0
我有一個運行良好的調試版本的程序,但是當我在下面線運行相同與發佈構建我的程序崩潰問題在Visual Studio 2012發佈版本
char* iter=ptr; //ptr is already initialized
char* iter = (char*) ALIGN (iter); // crashes here
我有類似下面的預處理器定義對於ALIGN
類型轉換長指針。
#define SIZE 8L
#define ALIGN(ptr) \
(((__int64)ptr & (~(SIZE - 1L))) + SIZE) \
: (__int64)ptr)
,當我在Visual Studio 2012在Windows 8中運行這個程序,它只是提供了問題,但工作正常使用Windows 7中的Visual Studio 2012。 我不知道我們必須設置或取消設置我的程序在發佈模式下工作的標誌(可能是優化標誌)。
請建議我一個解決方案
嘿,我的道歉,其實我要增加一行。當它崩潰時,會出現「訪問衝突寫入位置」之類的錯誤。其實這個程序在vc9和vc10發佈模式下工作正常,但我不知道爲什麼它在Windows 8的vc11發佈模式下失敗。 –
@ user3021329因爲未定義的行爲。 –