gpt4 book ai didi

c++ - Visual Studio 2012 发布版本中的问题

转载 作者:太空宇宙 更新时间:2023-11-04 16:18:15 25 4
gpt4 key购买 nike

我有一个在调试构建中运行良好的程序,但是当我在发布构建中运行相同的程序时,我的程序在以下几行崩溃

char* iter=ptr; //ptr is already initialized

char* iter = (char*) ALIGN (iter); // crashes here

我有一个预处理器定义,如下所示用于 ALIGN

long 指针的类型转换。

#define SIZE       8L
#define ALIGN(ptr) \
(((__int64)ptr & (~(SIZE - 1L))) + SIZE) \

: (__int64)ptr)

仅当我在 windows 8 的 Visual Studio 2012 中运行此程序时才会出现问题,但在 windows 7 的 Visual Studio 2012 中运行良好。我不知道我们必须设置或取消设置哪些标志(可能是优化标志)才能让我的程序在 Release模式下工作。
请给我一个解决方案

最佳答案

基本上,你所做的是

char* iter = iter;

如果变量 iter 被声明为局部变量,它的内容将是不确定的,使用该值将导致未定义的行为。这包括使用该值来初始化自身。

关于c++ - Visual Studio 2012 发布版本中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20144435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com