Как конвертировать unsigned int (указатель) в const char в C ++

0

Как преобразовать unsigned int (UINT32) в const char.

Я попытался использовать его, но поскольку isnt type safe сбой, когда указатель больше, чем ожидалось.

Итак, как я могу подойти к этому правильно?

    unsigned int p = 0x32422342;
    strLocation = QString::fromUtf8((char*)p, sizeof(p));

BTW, если я покину актерский состав, у компилятора появляется исключение:

cast to 'const char*'from smaller integer type 'UINT32' (aka 'unsigned int') [-Wint-to-pointer-cast]

какие-либо предложения? Значение - это просто случайное число, просто для уточнения.

  • 0
    какие-либо предложения? Значение является просто случайным числом, просто для пояснения
  • 0
    Вы на самом деле пытаетесь привести 32-битное целое число без знака к указателю на char ( char * ), который из сообщения об ошибке кажется шире 32-битного (64-битного).
Показать ещё 6 комментариев
Теги:
casting
unsigned-integer

1 ответ

1

Ваши указатели, вероятно, длиной 64 бит, поэтому ваш компилятор жалуется... Вы уверены, что ваши 32 бита представляют собой хороший адрес? Возможно нет.

  • 0
    Да, я могу просто увеличить размер целого числа. Спасибо за ответ!
  • 0
    Есть ли способ избежать предупреждения, которое я упомянул в своем вопросе? Используете литье?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню