我创建了一个类似于经典C(不是NSArray或其中一个孩子)的数组 - 类似于BOOL i[5];
。我想让它的所有值都等于NO。
首先,我没有找到关于这些数组的初始值的任何信息(我知道在经典C中它们将是未定义的,但不完全了解Objective-C。我发现有关类及其的信息内部数据[分配后,没有初始化],但不是关于简单数据类型。)
第二,如果我应该手动设置数组值 - 我应该使用memset(...);
还是其他不同的东西?
为了防止可能出现的问题...我想将此构造用作临时布尔标志的数组,并且不要认为它在这里被证明使用类似NSArray的东西。
答案 0 :(得分:3)
如果BOOL i[5]
是ObjC类的ivar,其内容将被初始化(memset
- ed)为0。
...所有其他实例变量的内存设置为
0
。
要在其他情况下将数组设置为全部NO,可以使用
memset(i, 0, sizeof(i));
答案 1 :(得分:0)
即使它是0-ed而不是像C中的undef一样,正确的初始化应该明确地设置所有值,因为你不知道NO是否为0(它是,但是在结合上......!),所以简单地说:
for(j = 0; j < 5; j++) i[j] = NO;
可以胜任这项工作。