Възможно дублиране:
Как да създам многомерен масив?
Аз съм нов за програмиране и цел С, така че, въпреки че съм намерил няколко въпроса тук, които обсъждат многоизмерни масиви, не получавам това, което трябва да направя, за да изградя и да използвам собствената си.
Трябва да направя масив с 16 реда и 3колони. Масивът трябва да приема струнни обекти. Не знам как да създам това, да го запълня или да имам достъп до съдържанието му. Някой би ли бил достатъчно добър, за да го счупи за мен?
Отговори:
11 за отговор № 1Предлагам да използвате C-масив, като NSArray
не поддържа множество измерения.Можете да декларирате масива, който описахте по следния начин:
NSString *stringArray[16][3];
Задаването и достъпът до низи от този масив е доста директно напред:
stringArray[7][1] = @"Stringstringstring";
NSString *string = stringArray[3][0];
Вие обаче бих могъл използвайте NSArray
(или NSMutableArray
), но това би било малко по-елегантно:
NSArray *stringArray = [NSArray arrayWithObjects:
[NSMutableArray array],
[NSMutableArray array],
[NSMutableArray array], nil];
Тези трима NSMutableArray
ще бъдат трите колони на двуизмерния ви масив.
редактиране
Използване на NSArray
, може да е по-лесно да използвате цикъл, за да го запълните:
NSMutableArray *stringArray = [NSMutableArray array];
for (int column = 0; column < 3; column++)
{
NSMutableArray *columnArray = [NSMutableArray array];
for (int row = 0; row < 16; row++)
[columnArray addObject:[NSString stringWithFormat:@"Row %i, column %i", row, column]];
[stringArray addObject:columnArray];
}