yancong0123 2022-01-20 17:35 采纳率: 100%
浏览 567
已结题

QT中 QByteArray数据转自定义结构体(含成员指针)能强转吗

QT中 UDP接收数据用的QByteArray,然后需要将QByteArray数据转换成自定义结构体数据(含成员指针),能进行强制转换吗?

  • 写回答

3条回答 默认 最新

  • 关注

    结构体中有指针的话不能直接强转,需要自己写个解析函数,按照报文格式,逐个字段解析出来放到结构体中。

    题外话:

    如果结构体中没有指针,如果在发送端发送的时候,直接用结构体取地址的方式发送,那么在接收端就可以直接转,否则就不能直接强转。
    假设有结构体:

    struct StData
    {
    int a;
    int b;
    };
    struct StData st; 
    st.a = 1;
    st.b = 2;
    

    如果再发送端发送的时候,使用的方式是
    writeDatagram(&st,QHostAddress::LocalHost,6000);
    这种形式,那么在接收端,收到数据后,可以直接把接收到的数据强转为结构体。(只有这种情况下才能直接强转)
    否则,就不能直接强转。

    如有帮助,请点击我的回答下方的“采纳该答案”帮忙采纳一下,谢谢。

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月27日
  • 已采纳回答 1月21日
  • 创建了问题 1月20日

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料