c ++, reinterpret_cast структура * в беззнаковый символ *

Сначала я извиняюсь за мой английский 🙂
Итак, у меня есть структура и переменная

typedef struct
{
GHEADER  m_Header;
BYTE    *m_Buf;
Addr    *m_Abonent;
}__attribute__((packed)) PACKET;

unsigned char* uc_ptr;

Мне нужно отправить в какую-либо функцию без знака аргумент указателя символа. Я пытался использовать reinterpret_cast навести указатель на PACKET введите в unsigned char*,

PACKET* t_PACKET;
uc_ptr = reinterpret_cast<unsigned char*>(t_PACKET);

Но потом попробовал

std::cout << *uc_ptr << std::endl;

Я ничего не вижу. Зачем? И как правильно это разыграть?

0

Решение

Когда вы используете << вывести char вы получите один символ, записанный на выходе. Многие персонажи, такие как \0 не отображаются на консоли.

Попробуйте вместо этого, чтобы понять, что я имею в виду:

std::cout << static_cast<unsigned int>(*uc_ptr) << std::endl;

Вам понадобится цикл, чтобы получить все байты в структуре.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]