您当前的位置: 首页 > 

柳鲲鹏

暂无认证

  • 0浏览

    0关注

    4642博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C中取得数组的地址,赋值给数组结构的字段

柳鲲鹏 发布时间:2021-07-13 09:14:53 ,浏览量:0

  比如,吾开辟了一个共享内存区,把数组转移成如下结构:

typedef struct
{
    int shmID;
    bool hasData;
    int dataSize;
    char* dataBuffer;
}  JsData;

有两种办法:

  • 计算位置
JsData* pData = (JsData*)m_nShmAddr;
pData->dataBuffer = (char*)m_nShmAddr+sizeof(int)+sizeof(bool)+sizeof(int);
  • 直接取地址(会错误)
pData->dataBuffer = (char*)(&(pData->dataBuffer));

这个代码的意思是,取dataBuffer的地址,同仁给dataBuffer。

两种办法是不是等效?不等效,因为有字节对齐的问题(pack)。输出结果如下:

0xA7E38009
0xA7E38010
关注
打赏
1665724893
查看更多评论
立即登录/注册

微信扫码登录

0.0492s