2

我正在使用最新的 SDK 开发 iOS 5.0+ 应用程序。

我必须以这种方式声明一个私有 2D 数组的初始化,因为我将在 C++ 函数上使用它:

@implementation MyClass

int myArray[NSFirstDim][NSSecondDim] = 0; <-- Error here

...

- (id)init
{
...
}

...
@end

但我不能以这种方式初始化为 0,因为我收到以下消息:

Array initializer must be an initializer list

如何将所有值初始化为零?

或者我可以使用二维动态数组...

4

5 回答 5

7

利用

int myArray[NSFirstDim][NSSecondDim] = {0};

这是 C 中的一个强大行为,您可以在其中添加 start和 rest(其他)的值,并将其初始化为 0。

在此示例代码中,

int arr[4][3]={1,2,3};

for (int i=0; i<4; i++) {
    for (int j=0; j<3; j++) {
        NSLog(@"%d",arr[i][j]);
    }
}

输出:1,2,3,0,0,0,....

于 2013-04-29T09:22:47.463 回答
6
int myArray[NSFirstDim][NSSecondDim] = {0};
于 2013-04-29T09:24:18.017 回答
2
int myArray[NSFirstDim][NSSecondDim] = {0};

This statement intializes all elements of 2D array to zero.

于 2013-04-29T09:27:07.723 回答
2

看看Initialising arrays in C++,我发现它非常有用。

这也可能有效: int myArray[NSFirstDim][NSSecondDim] = {};

于 2013-04-29T09:34:07.613 回答
-2

How about this int myArray[2][1] = { {0},{0}};

于 2013-04-29T09:26:35.213 回答