Я предполагаю, что под "строкой" вы имели в виду 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.