美文网首页
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++可变长结构体

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