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

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

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

  1. 对数组名取地址赋值给数组指针与普通指针的区别

    对数组名取地址赋值给数组指针与普通指针的区别: 以下红色字体的说法是错误的:     使用一级指针来接受&arr,只是表示一个普通的一级指针,     它并没有接收到&arr赋来的跨度 ...

  2. 如何给6个整数的一维数组某个元素赋值_数组指针详解

    文章部分资料来源: Pointer to an Array | Array Pointer - GeeksforGeeks​www.geeksforgeeks.org 介绍数组指针之前,先来回顾指针: ...

  3. 【C 语言】数组 ( 多维数组操作模型 | 取某个数组元素地址 | 取某个数组元素值 )

    文章目录 一.多维数组操作模型 1.取出某个数组元素地址 2.取出某个数组元素值 总结 一.多维数组操作模型 以 // 声明一个多维数组int array[2][3]; 二维数组为例 ; 1.取出某个 ...

  4. c++如何打印一维数组首地址_4.1 数组的定义

    ★ 视频分享 ★ 数组的概念数组是相同数据类型的元素的集合. ★ 数组的特点 一个数组中的所有元素具有相同的数据类型 数组元素相当于变量,系统为每个数组元素分配等大的存储单元 数组元素在内存中按照下标 ...

  5. C++指针数组、数组指针、数组名及二维数组技巧汇总

    本文较为详细的分析了关于理解C++指针数组,数组指针,数组名,二维数组的一些技巧.是比较重要的概念,相信对于大家的C++程序设计有一定的帮助作用. 一.关于数组名 假设有数组: int a[3] = ...

  6. 【C 语言】数组 ( 数组相关地址 | 数组首元素地址 | 数组地址 )

    文章目录 一.数组相关地址 1.数组首元素地址 2.数组地址 二.代码示例 一.数组相关地址 数组首元素地址 与 数组地址 值相等 ; int array[10]; 其中 array + 1 的值是 ...

  7. JS基础之数组--概述、创建数组的几种方式、数组的特点、数组的常用方法、数组的解构赋值、数组高级API

    一.概述 描述:数组(array)是按照一定顺序排列的一组值,每个值都拥有自己的编号,编号从0开始.整个数组用方括号来表示. 语法:var arr=[item1,item2,item3-] 1.1 注 ...

  8. VBA 数组定义,赋值,一维数组

    1VBA数组的基础定义 1.1什么是数组? 就是一组数/字符等用同一个名字(这个名字就是:数组名),作为一个整体存储在一起 1.2什么是元素 这些被保存在同一个数组名下的,多个内容,称为element ...

  9. 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

  10. C++阶段01笔记汇总【C++软件安装、C++初识、数据类型、运算符、程序流程结构、数组、函数、指针、结构体】

    C++| 匠心之作 从0到1入门学编程[视频+课件+笔记+源码] 目录 C++课程安排 1 C++初识 1.1 第一个C++程序 1.1.1 创建项目 1.1.2 创建文件 1.1.3 编写代码 1. ...

最新文章

  1. c++ string类型用法
  2. aliplayer 手机全屏控件不显示_Flutter 强大的MediaQuery控件
  3. href脱离iframe显示
  4. python与正则表达式(part4)--正则表达式分组
  5. bzoj1293 [SCOI2009]生日礼物 单调队列
  6. 对还剩20天的FPGA大赛规划
  7. python pcl_windows 10 环境pcl-python 安装
  8. dsn服务器显示问题,DNS 服务器出现4004错误解决方法
  9. Maven教程-使用Nexus搭建私服,Java基础视频
  10. 详解数据库锁机制和原理
  11. 扫码枪回车键条码_收银系统中扫描枪扫描条码后必须按回车键才能查询商品的解决办法...
  12. 2016.11.03回顾 more excel交换两列
  13. 洛谷—— P1069 细胞分裂
  14. 项目的组织结构(职能型、项目型和矩阵型)
  15. python列表的长度可变吗_Python: 浅析列表的变长变短
  16. nodejs调用阿里云盾身份证二要素验证
  17. 创客(米思奇编程)-03-传感器
  18. 小说作者推荐:耳东兔子合集
  19. Qt之QVector基本用法
  20. 网络模拟器软件分享——Cisco Packet Tracer、华为eNSP、H3C Cloud Lab

热门文章

  1. python使用try语句捕获处理异常_Python使用try except处理程序异常的三种常用方法分析...
  2. 电信私有云 oracle,行业观察:Oracle私有云升级
  3. java 集合工具类_Java 集合 Collections工具类
  4. mac mysql docker_docker学习(5) 在mac中创建mysql docker容器
  5. 计算机硬件人员专业知识技能,电子计算机(微机)装配调试员
  6. pythongui做计算器_python GUI模拟实现计算器
  7. 计分及竞赛软件启动时的错误现象及解决方法
  8. [20190524]DISABLE TABLE LOCK(12c).txt
  9. 一个简单的nginx配置
  10. 如何用 Lua 查询青云的主机