gpt4 book ai didi

objective-c - 创建一个整数数组,其大小基于 NSArray 的大小

转载 作者:太空宇宙 更新时间:2023-11-04 05:21:29 30 4
gpt4 key购买 nike

我正在尝试根据我在运行时获得的大小创建一个 int 数组并将其归零:

size = [gamePiece.availableMoves.moves count]; //debugger shows size = 1;
int array[size]; //debugger shows this as int[0] !
memset(array, 0, size);
indexes = array;

sizeindexes 都是这个类的ivars:

int size;
int* indexes;

不过,我最终得到了一个长度为 0 的数组。如何创建大小由 [gamePiece.availableMoves.moves count] 指示的大小?

最佳答案

首先,你不能做你正在做的事情。即使这样做有效,当方法返回并且当前堆栈帧被删除时,数组也会消失。您需要动态分配数组,然后需要记住在释放对象时释放它。所以:

size = [gamePiece.availableMoves.moves count];
indexes = calloc(size, sizeof(int));

然后,在您的-[dealloc] 方法中:

if( indexes ) free(indexes);

使用 calloc(3) 将确保所有内存都清零,因此您无需调用 memset(3)。

关于objective-c - 创建一个整数数组,其大小基于 NSArray 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5150312/

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