2009-06-03 4 views

ответ

3

С Objective-C является строгим надмножество с, вы могли бы просто использовать чистое определение С и он будет работать нормально:

char** myMatrix = malloc(width*height); 

Вы также можете использовать NSArray из NSArrays, но это не 2 мерный массив. Это зубчатый массив и значительно менее простой в использовании, чем простой массив байтов.

Другой альтернативой является использование объекта NSData/NSMutableData. Это основной способ работы с байтовыми массивами. См. NSMutableData class reference для получения дополнительной информации.

NSMutableData* data = [NSMutableData dataWithLength:1024]; // One kilobyte 
void* dataPointer = [data mutableBytes]; // Get a pointer to the raw bytes 
+0

Вероятно, хотят сделать что символ ** myMatrix, так что вы можете использовать более нормальное обозначения myMatrix [х] [у] –

+0

Вы правы, я добавил *. –

+0

HI Greco !!! Могу ли я заменить этот символ * на байт *? – SocialCircus

0

Я обманываю, делая это в C.

size_t width; 
size_t height; 
unsigned char *twoDimArray = calloc(width*height); 
+0

HI krbyrd !!! Могу ли я заменить этот символ * на байт *? – SocialCircus

+0

Ни стандарт C, ни C++ не имеет типа байтов. Я не знаю о Objective C. – kbyrd

Смежные вопросы