Il est étrange de comploter tableaux C et NSArrays, mais il peut être fait:
NSMutableArray *myArrays[];
myArrays = malloc(sizeof(NSMutableArray *) * numberOfArrays);
Une meilleure solution serait d'utiliser soit un NSArray de NSArrays;
NSMutableArray *rows = [NSMutableArray array];
[rows addObject: [NSMutableArray array]];
[rows addObject: [NSMutableArray array]];
[rows addObject: [NSMutableArray array]];
NSMutableArray *row0 = [rows objectAtIndex: 0];
[row0 addObject: [Datum new]];
[row0 addObject: [Datum new]];
[row0 addObject: [Datum new]];
.... etc ....
Ou, il suffit d'utiliser un tableau de pointeurs directement:
Datum **my2DArray = malloc(sizeof(Datum *) * width * height);
Ensuite, toute cartésienne coordonnées données au sein my2DArray
est un peu simple math:
my2DArray[ x + (y * width) ] = ....;
Cela va effectivement convertir toute coordonnée donnée (x, y) en un index linéaire x (effectivement, y devient la foulée et x devient le décalage dans la foulée).
Parlez-vous de C arrays ou NSArrays? –
NSArrays, je veux déclarer un tableau de pointeurs et chaque pointeur pointera vers un tableau. –