也许我的内存完全变了,但我想我记得在没有初始化的情况下声明指针会使它们指向 nil。但最近似乎并非如此。一直都是这样吗?还是与编译器设置有关?
最佳答案
对象的实例变量在alloc
中被初始化为nil
(整个对象被bzeroed)。
编辑: 此外,全局和静态存储变量被初始化为零(C99 Standard 的 6.7.8 10,感谢 Derek 指出这一点)。
局部堆栈变量不会自动初始化。这在已知历史上没有改变。
关于Objective-C 未初始化指针与空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1619150/