Как преобразовать std::string в uint8_t*?

224
13 августа 2017, 07:17

Как конвертировать string в uint8_t*, чтобы затем правильно передать значение в функцию WriteReg?

void WriteReg(uint8_t *buffer)
{
    // some code
}
int main()
{
    string str4 = "test";
    uint8_t send_buffer[20];
    // convert str4 to send_buffer ?
    WriteReg(send_buffer);
}
Answer 1
std::memcpy(send_buffer, str4.data(), str4.size() + 1);

Если терминальный ноль не нужен, единичку можно убрать. Ещё стоит проверить, что строка влезет в буфер, на всякий случай. А если это отправка по сети, то обычно ещё размер буфера в функцию WriteReg передают

Answer 2

Просто сделайте каст:

WriteReg(reinterpret_cast<uint8_t*>(&str4[0]));
READ ALSO
Jquery слайдер &ldquo;лесенкой&rdquo; [требует правки]

Jquery слайдер “лесенкой” [требует правки]

Видел где-то слайдер со слайдами расположенными друг под другом "лесенкой, на подобии:

213
CSS Hat горячие клавиши

CSS Hat горячие клавиши

Здравствуйте, есть ли возможность копировать сгенерированные стили css hut с помощью горячих клавиш? А то ведь не очень удобно, когда развернуто...

280
Wordpress не видит изображения в css файле

Wordpress не видит изображения в css файле

Все Привет, есть Wordpress и свой шаблон темы

324