在我正在开发调试版本的项目中,我正在使用Xcode在启动时/编译时自动将变量初始化为0。至少一切看起来都像。
我经常遇到这个问题,我没有将变量初始化为NULL - 这在我的Mac上工作正常 - 当其他人编译并启动项目时(尤其是在Windows机器上,因为它是一个多平台项目),他们得到EXC_BAD_ACCESS
,因为== NULL
是假的。
我很确定有一个设置可以关闭此行为,或者只是巧合,分配的内存在我的机器上总是新鲜的?
答案 0 :(得分:3)
这可能只是巧合。
关于每个现代多用户操作系统,当操作系统为进程提供新内存时,它会清除所有旧内容,从而没有信息从一个进程泄漏到另一个进程。因此,当您第一次访问某些内存时,它就像它被设置为0一样。
在使用调试版本时更有可能发生这种情况,因为优化通常包括降低堆栈占用空间,从而更早地重用某些内存。