从Objective-C函数返回2D C数组

RSH*_*SH1 7 c objective-c

我想在Objective-C中实现类似的功能

+(int[10][10])returnArray
{
    int array[10][10];
    return array;
}
Run Code Online (Sandbox Code Playgroud)

但是,这给出了"数组初始值设定项必须是初始化列表"编译器错误.这是可能吗?

Car*_*rum 9

您无法在C或Objective-C中返回数组(任何维度).由于数组不是左值,因此您无法将返回值赋给变量,因此对于这样的事情没有意义.但是,你可以解决它.你需要返回一个指针,或者像把数组放在一个结构中一样窍门:

// 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;
}
Run Code Online (Sandbox Code Playgroud)