首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Objective-C函数返回2D C数组

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

Stack Overflow用户
提问于 2012-01-07 08:49:35
回答 2查看 4.5K关注 0票数 7

我想在Objective-C中实现这样的东西

代码语言:javascript
复制
+(int[10][10])returnArray
{
    int array[10][10];
    return array;
}

但是,这会给出一个“数组初始化器必须是初始化器列表”的编译器错误。这有可能吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-07 08:51:46

您不能在C或Objective-C中返回(任何维数的)数组。由于数组不是左值,您不能将返回值赋给变量,因此这种事情的发生是没有意义的。但是,您可以解决这个问题。你需要返回一个指针,或者使用一些技巧,比如将数组放入结构中:

代码语言:javascript
复制
// 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;
}
票数 9
EN

Stack Overflow用户

发布于 2012-11-20 09:03:47

使用objective C++的另一种方法是声明数组,如下所示:

代码语言:javascript
复制
@interface Hills : NSObject
{


@public
    CGPoint hillVertices[kMaxHillVertices];
}

这意味着该数组归Hills类实例所有-即当该类拥有数组时,它将消失。然后,您可以从另一个类访问,如下所示:

代码语言:javascript
复制
_hills->hillVertices 

我更喜欢卡尔·诺鲁姆描述的技术,但我想把它作为一个在某些情况下可能有用的选项来呈现-例如,将数据从构建器类传递到OpenGL中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8766377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档