美文网首页
C++可变长结构体

C++可变长结构体

作者: 钟离惜 | 来源:发表于2020-09-14 23:08 被阅读0次

根据代码来看很容易理解,下面就是实际的代码。
变长结构体的核心思想就是在结构体的最后一个数据结构为一个指针,这个指针指向的是这个结构体的末尾数据数组的首地址。

#include <stdlib.h>

typedef struct stru_zmq_server_msg
{
    int deviceId;
    int msgCode;
}TS_ZMQ_SERVER_MSG;

typedef struct stru_tcp_server_msg
{
    int msgLength;
    int msgBodyLen;
    TS_ZMQ_SERVER_MSG zmqMsgBody[1];
}TS_TCP_SERVER_MSG;


int main()
{
    int len = sizeof(TS_TCP_SERVER_MSG) + sizeof(TS_ZMQ_SERVER_MSG) * 2;
    TS_TCP_SERVER_MSG* tdata = (TS_TCP_SERVER_MSG*)malloc(len);
    tdata->msgLength = len;
    tdata->msgBodyLen = 2;
    TS_ZMQ_SERVER_MSG* data = (TS_ZMQ_SERVER_MSG*)tdata->zmqMsgBody;

    data[0].deviceId = 100;
    data[0].msgCode = 1;
    data[1].deviceId = 101;
    data[1].msgCode = 2;
    free(tdata);
    return 0;
}

转载文章
https://www.cnblogs.com/dangerman/archive/2012/12/16/2820825.html

相关文章

  • C++可变长结构体

    根据代码来看很容易理解,下面就是实际的代码。变长结构体的核心思想就是在结构体的最后一个数据结构为一个指针,这个指针...

  • C语言——变长数据包pdu(协议数据单元protocol dat

    变长结构体 首先写介绍下变长结构体: structVar_Len_Struct { intnsize; charb...

  • C++常用容器复习

    cin>>a cout<

  • Android NDK开发之旅20--C++--结构体

    Android NDK开发之旅 目录 C++ 结构体 C/C++ 数组允许定义可存储相同类型数据项的变量,但是结构...

  • C语言结构体赋值分析

    C++相比C语言的-大便利是类和结构体可以直接用等号赋值。C++为类和结构体提供了可自定义的赋值操作符opeart...

  • JSON数据转C++结构体

    JSON数据自动生成C++结构体 JSON数据自动生成C++结构体背景nlohmann/json基础Python自...

  • C++中的结构体

    1.Cpp中的结构体 C/C++数组允许定义可存储相同类型数据项的变量,但是结构体是C++中另一种用户自定义的可用...

  • Texture之ASDisplayNodeInternal.h

    c++容器 c++类型:atomic_uint 罕见的c++语法 初始化结构体 c结构体 检查指定类是否重写了另一...

  • c++类相关

    c++结构体与c结构体的区别 c语言 c++ c++类的使用 类的权限管理 对类的成员的访问做限制 private...

  • 01-OC对象的本质

    OC是通过C/C++的什么数据结构实现我们的OC对象呢 结构体--OC对象的本质就是C/C++的结构体 Class...

网友评论

      本文标题:C++可变长结构体

      本文链接:https://www.haomeiwen.com/subject/mtyzektx.html