在Objective-C中返回浮点数数组

5
我希望了解如何在方法中返回浮点数数组。
例如以下类型的方法:
- (float *) ......{
    float * result = malloc(sizeof(float) * number);
    ....
    return result;
}

我的问题是我没有清除结果浮点数组。如何做到呢?


4
@iRaviiVooda 的评论没有什么用。OP 请求一个具体而且不是常规的 Objective-C 任务。指向那个 Objective-C 文档的顶部网站并没有什么帮助。 - vikingosegundo
2个回答

4
我的问题是我没有清理结果的浮点数组。
这是调用你返回浮点数组的方法的人的工作:现在他拥有它,因此他必须调用free
一般情况下,有两种情况:
  • 你在另一个方法或函数中使用数组而不存储它 - 在这种情况下,请确定你的方法或函数中不再需要该数组的位置,并调用free()传递该数组。
  • 你将数组存储为一个对象的实例变量之一 - 在这种情况下,请为你的类添加一个dealloc方法,并从那里对数组变量调用free()

0

苹果有一套命名约定,用于描述如何执行操作。在您的情况下,必须以create前缀开头,并在不再需要内存时清除已分配的内存:

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

查看更多这里
最好将其放入标准的NSArray中。但是,如果您这样做,最好制作函数而不是方法类。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接