从一个Objective-C函数返回一个二维数组c [英] Returning a 2D C array from an Objective-C function
本文介绍了从一个Objective-C函数返回一个二维数组c的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想做的事情实现的Objective-C这样的事情
I want to do achieve something like this in Objective-C
+(int[10][10])returnArray
{
int array[10][10];
return array;
}
不过,这给出了一个阵列初始化必须是一个初始化列表编译器错误。这是在所有可能的?
However, this gives an "array initializer must be an initializer list" compiler error. Is this at all possible?
推荐答案
您不能在C或Objective-C的返回数组(任何尺寸)。由于数组不是左值,你将无法返回值赋值给一个变量,所以没有意义的这样的事情发生。你可以解决它,但是。你需要返回一个指针,或拉一招就像把你的数组中的结构:
You can't return an array (of any dimension) in C or in Objective-C. Since arrays aren't lvalues, you wouldn't be able to assign the return value to a variable, so there's no meaningful for such a thing to happen. You can work around it, however. You'll need to return a pointer, or pull a trick like putting your array in a structure:
// return a pointer
+(int (*)[10][10])returnArray
{
int (*array)[10][10] = malloc(10 * 10 * sizeof(int));
return array;
}
// return a structure
struct array {
int array[10][10];
};
+(struct array)returnArray
{
struct array array;
return array;
}
这篇关于从一个Objective-C函数返回一个二维数组c的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文