Перевод const char* в const u_char*

216
22 марта 2017, 18:27

Я работаю с двумя функциями из сторонних библиотек. Одна возвращает const char*, а другая принимает const u_char*. Изменить функции не представляется возможным. Я пробовал использовать static_cast<>() и reinterpret_cast<>(), но такое преобразование является некорректным. Как и преобразование простым приведением типов в стиле Си. Как следует поступить в моей ситуации?

Ошибки ещё во время компиляции:

error: invalid static_cast from type 'const char*' to type 'const u_char* {aka const unsigned char*}'
const u_char* pbuf = static_cast<const u_char*>(buf);
Answer 1

Всё зависит о того, что вы называете корректным, следующий код компилируется и выводит строку:

void foo(const unsigned char* str) {
  cout << str; // Test string
}
int main() {
  const char *str = "Test string";
  foo(reinterpret_cast<const unsigned char*>(str));
  return 0;
}
READ ALSO
Не могу понять ,как создать пустой список указателей на объект через std :: vector

Не могу понять ,как создать пустой список указателей на объект через std :: vector

Создать пустой список указателей на объекты класса Круг, используя коллекции языка С++ (например, std::vector<T>)

187
Как передать параметр в callback?

Как передать параметр в callback?

Есть функция внутри метода, находящая необходимую клетку на поле:

189
Webpack генерирует слишком большой файл

Webpack генерирует слишком большой файл

Знатоки webpack’a, я вот хочу подключать CSS в JS файле

273