2012-11-01 39 views
0

我将如何去声明一个未知大小的.h文件中的数组,我将在类中的一个函数中计算这个数组?声明一个具有未知大小目标的对象X的数组c

例如,我可能有20个或30 NSArrays(只是举个例子,不是我所需要的),但我不知道确切的数字,当类首次调用

在实现文件..

-(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中的意义**阵列?我能否在h文件中声明该声明,然后在.m文件中声明实际大小?

的感谢!

+0

这是为什么用C#标记? –

+0

抱歉打错了! – PenguinSource

回答

2

你有两种选择。

1)使它NSArrays的一个NSArray,或

2)声明为:

NSArray **arrays_of_unknown_size; 

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

+0

谢谢,这就是我一直在寻找! – PenguinSource

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过长,不要使用这个名字,这只是一个例子。

+0

谢谢,这会做! – PenguinSource