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因为未定义的行为。 –