基本上我有一个类方法返回一个float array
. 如果我返回 astatic array
我会遇到它太大或什至可能太小的问题,具体取决于输入参数,因为所需数组的大小取决于输入大小。如果我只返回一个float array[arraysize]
我已经解决了尺寸问题,但我还有其他问题。
比如说,我分别处理每个元素,non-static float array
例如
NSLog(@"array[0] %f array[1] %f array[2] %f",array[0],array[1],array[2]);
它打印数组的正确值。但是,如果我改为使用循环,例如
for (int i = 0; i < 3; i++)
{
NSLog(@"array[%i] %f",i,array[i]);
}
我得到了一些非常奇怪的数字(奇怪的是,除了最后一个索引)。为什么这两件事会产生不同的结果?我知道简单地返回 a 是不好的做法non static float
,但即便如此,这两种寻址数组的方法对我来说看起来是一样的。
类方法的相关代码(用于非静态版本)...
float array[arraysize];
//many lines of code later
if (weShouldStoreValue == true) {
array[index] = theFloat;
index = index + 1;
}
//more lines of code later
return array;
请注意,它返回一个 (float*)。