0

我将如何在 .h 文件中声明一个未知大小的数组,我将在类内的 a 函数中计算该数组?

例如,我可能有 20 或 30 个 NSArray(只是一个例子,不是我需要的),但我不知道第一次调用该类时的确切数字

在实现文件中..

-(id) init {
   if self = ..
       number_of_arrays = 50; // this can be whatever value
}

在.h中:

int number_of_arrays;
NSArray *arrays_of_unknown_size[number_of_arrays]; // but number of arrays is not init !

另外, NSArray **arrays 的意义是什么?我可以在 h 文件中声明,然后在 .m 文件中声明实际大小吗?

谢谢 !

4

2 回答 2

2

你有两个选择。

1) 使其成为 NSArray 的 NSArray,或

2) 声明为:

NSArray **arrays_of_unknown_size;

然后,当您知道实际大小时,您可以 malloc/calloc 指针。然后你需要为 C 数组的每个元素分配一个 NSArray。

于 2012-11-01T22:33:12.127 回答
2

就像 rmaddy 所说,您可以使用 malloc 分配数组:

arrays_of_unknown_size= (NSArray**)malloc(N*sizeof(NSArray*));

你也可以用 realloc 重新分配它,大小可能会改变。
另一种方法是使用包含数组的数组:

NSMutableArray* array_of_unknown_size=[[NSMutableArray alloc]init];

然后当数组已经填充时,获取您想要的单个数组:

NSArray* myArray=[array_of_unknown_size objectAtIndex: myIndex];

当然arrays_of_unknown_size太长了,不要用这个名字,只是一个例子。

于 2012-11-01T22:38:21.630 回答