在Objective-C中返回float数组

时间:2013-12-16 11:11:09

标签: ios arrays memory-management floating-point

我想知道如何在方法中返回float数组。

在以下方法中:

- (float *) ......{
    float * result = malloc(sizeof(float) * number);
    ....
    return result;
}

我的问题是我没有清理结果浮点数组。我怎么能这样做?

2 个答案:

答案 0 :(得分:4)

  

我的问题是我没有清理结果浮点数组。

这是调用你的方法返回float数组的人的工作:现在他拥有它,所以他必须在它上面调用free

通常,有两种情况:

  • 在另一个方法或函数中使用数组而不存储它 - 在这种情况下,确定方法中的点或不再需要数组的函数,并调用{{1将数组传递给它。
  • 您将数组存储为其中一个对象的实例变量 - 在这种情况下,向您的类添加free()方法,并在数组上调用dealloc从那里变量。

答案 1 :(得分:0)

Apple有方法名称约定,描述了如何做到这一点。在您的情况下,您必须使用create前缀启动方法,并在不再需要时清理已分配的内存:

float* CreatePointsArray()
{
    float* result = malloc(sizeof(float) * number);
    ....
    return result;
}
...
points = CreatePointsArray();
...
free(points);

查看更多here
最好将其纳入标准NSArray。但是,如果你这样做,最好是创建函数而不是方法类。