关闭Xcode中变量的自动初始化
Turn off automatic initialization of variables in Xcode
在我正在处理的项目中,Xcode在启动/编译时,当我开始调试构建时,会自动将变量初始化为0。至少一切看起来都像。
我经常遇到这样的问题,我没有将变量初始化为NULL——这在我的Mac上很好——当其他人编译并启动项目时(尤其是在Windows机器上,因为它是一个多平台项目),他们会得到一个EXC_BAD_ACCESS
,因为== NULL
是false。
我很确定有一个设置可以关闭这种行为,或者只是巧合,分配的内存在我的机器上总是新鲜的?
在几乎每一个现代多用户操作系统上,当操作系统为进程提供新内存时,它会擦除所有旧内容,以免信息从一个进程泄漏到另一个进程。因此,当你第一次访问一些内存时,它看起来就像它被设置为0。
在使用调试构建时,这种情况在某些情况下更可能发生,因为优化通常包括降低堆栈占用空间,从而更早地重用某些内存。
相关文章:
- 初始值设定项列表是否只接受使用相同类型的值初始化变量?
- 在 C++ 中访问 lambda 捕获初始化变量
- 为什么C++不支持对未初始化变量进行智能分析?
- 使用 clang++ 和 g++ 在C++中初始化变量
- C++使用 lambda 初始化变量
- 如何在初始化列表中的构造函数之后初始化变量/对象?
- C++ - 输出与初始化变量不同?
- C++/Win32 构造函数不使用从对话框获取的字符串初始化变量
- 在C++中,为什么int可以使用new运算符初始化变量,而double不能
- 具有静态存储持续时间的常量初始化变量的初始化顺序
- C++ 中的初始化变量
- C++中未初始化变量的值
- 如何在需要提及需要循环声明的其他类的类中初始化变量?
- 我想知道在构造函数中初始化变量时的生命周期
- 读取恰好具有良好值的未初始化变量
- 如何在 getter 的父类中初始化变量的情况下访问子类中的变量
- 为什么在 c++ 中有多种初始化变量的方法
- 没有参数的默认构造函数是否总是初始化变量?
- 是否可以使用 lambda 初始化变量(删除复制 ctor 时)
- 使用构造函数跳闸UB的新放置后使用初始化变量