Сначала я извиняюсь за мой английский 🙂
Итак, у меня есть структура и переменная
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;
Я ничего не вижу. Зачем? И как правильно это разыграть?
Когда вы используете <<
вывести char
вы получите один символ, записанный на выходе. Многие персонажи, такие как \0
не отображаются на консоли.
Попробуйте вместо этого, чтобы понять, что я имею в виду:
std::cout << static_cast<unsigned int>(*uc_ptr) << std::endl;
Вам понадобится цикл, чтобы получить все байты в структуре.
Других решений пока нет …