Если вам нужен новый буфер данных, который содержит копию переданных данных, да, вы можете делать то, что советуют люди, - создать буфер char [] и выполнить memcpy , но это чистый C-way (хотя с чистым C все в порядке).
Способ Objective C - использовать NSData (или NSMutableData , если вы хотите, чтобы он был доступен для записи):
NSMutableData *dataBuffer = [NSMutableData dataWithBytes:someData length:dataLength];
Это будет поддерживаться новым блоком памяти, инициализированным скопированными байтами (если вы не хотите копировать, есть другой конструктор).
Затем используйте dataBuffer.bytes
или dataBuffer.mutableBytes
для доступа к необработанным байтам как void *
(который может быть приведен к char *
, например).
Обратите внимание, что new byte[]
выделяется в куче (динамический размер), но так, как выобъявленный dataBuffer[sDataLen]
появляется в стеке (и имеет фиксированный размер).NSData является динамическим.