我试图将结构指针与char*
一起作为函数的输入,但无法打印结构的内容。这是我的标题,必须添加到我的消息。无法将结构指针转换为C++中的字符指针
struct ethernet_header
{
int hlp;
char info_lenght[20];
int data_length;
};
在我的主要功能我这样做
ethernet_header *eth = new ethernet_header;
eth->hlp = 4;
eth->data_length = 10;
m->msgAddHdr((char *)eth,sizeof(ethernet_header));
我试图打印以下方式结构内容。
cout<<(char *)eth<<endl;
即使我尝试打印
cout<<(char *)eth->hlp<<endl;
它抛出一个错误。
功能msgAddHdr
将结构连接到消息。当我试图打印头部连接的信息时,它显示为空白,我甚至无法将其打印到char*
以打印结构。
当我试图通过这样的结构:
struct test1
{
char k = 'r';
};
得很完美。为什么它不适合我的原始结构?
'的sizeof(测试1)'?你可能是指'sizeof(ethernet_header)'...... – didierc 2014-11-24 19:57:13
你打印结构的内容是什么意思?你能用代码向我们展示你在“打印内容”中做什么? – PaulMcKenzie 2014-11-24 19:58:53
你只是不能通过将它们转换为char *来魔法打印结构。 C++不能以这种方式工作。如果你想看到一个结构,你需要逐场打印。 – 2014-11-24 21:47:18