Как преобразовать строку в uint8 [] в цель c? - PullRequest
0 голосов
/ 27 октября 2011

Теперь я использую следующий код для инициализации buf[], но я хочу передать строку в buf[], тогда как мне преобразовать строку в buf[]? Спасибо!

UInt8 buf[] = "hello world";

1 Ответ

3 голосов
/ 27 октября 2011

Я предполагаю, что под "строкой" вы имели в виду NSString *.

Длина строки неизвестна во время компиляции, поэтому вы не можете определить UInt8 buf[] для содержания значения. Вы должны либо заранее указать длину (например, UInt8 buf[100]), либо скопировать строку в память кучи и обратиться к ней с помощью UInt8 *buf.

Для первого подхода:

UInt8 buf[100];
strncpy(buf, str.UTF8String, sizeof(buf));

Во-вторых, это один из способов сделать это:

UInt8 *buf = strdup(str.UTF8String);
// Don't forget to call free(buf) later.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...