结构体对齐,结构体深拷贝和浅拷贝
struct定义
#include<stdio.h>
#include<stdlib.h>
//最宽基本成员,char,int,double,结构体数组都不是最宽基本成员
//结构体大小必须可以整除最宽基本成员,是最宽基本成员的整数倍
//结构体成员地址减去结构体首地址,就是偏移量,偏移量必须可以整除成员的基本类型
structinfo{
charc;
doublesh;
charch[9];
};
structinfo1
{
shortsh1;
intsh;
charch[19];
};
voidmain(){
structinfo1info11 = { 10, 200,"123456" };
printf("%p\n",&info11);
printf("%p\n",&info11.sh1);
printf("%p\n",&info11.sh);
printf("%p\n", &info11.ch);
getchar();
}
2.结构体深拷贝,浅拷贝
浅拷贝:共享一块内存,一个改了,另外一个也将改变
深拷贝:拷贝内存的内容
测试深拷贝和浅拷贝的例子如下:
A:首先,测试浅拷贝的情况
浅拷贝是通过结构体属性分别赋值来实现的。
这里的hello变成了kello了,说明这里通过结构体的浅拷贝修改了原来结构体的内容
B:深拷贝的情况
结构体对齐,结构体深拷贝和浅拷贝相关推荐
- C 语言结构体成员赋值的深拷贝和浅拷贝
作者 | 李肖遥 责编 | 欧阳姝黎 最近在做通信协议的解析处理.传递分析等问题,总是遇到通信帧中的结构体拷贝等问题,遇到了一些坑,也是比较基础但是易错的C语言知识,一起来探究一下结构体的 ...
- [c/c++] programming之路(28)、结构体存储和内存对齐+枚举类型+typedef+深拷贝和浅拷贝...
一.结构体存储 #include<stdio.h> #include<stdlib.h>struct info{char c; //1 2 4 8 double num; // ...
- C语言之结构体以及结构体对齐访问
1:简单理解,结构体就是数组的进一步发展,数据的优点和缺陷在于数据里面是元素类型必须相同,但是结构体没有这个要求,结构体里面元素的类型可以相同也可以不同. 2:结构体的定义: struct stude ...
- 结构体对齐,#pragma pack
一.结构体对齐 首先通过一个例子说明结构体对齐,可以看到,下面这个结构体占32字节(32位) typedef struct {double d;short s;int i;char c;short s ...
- C语言结构体对齐的不足
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105065657 C ...
- 这个结构体对齐输出有意思
这个题目是我在群里看到大家讨论的,既然是讨论的了,那我就拿出来说说,因为笔试面试的时候,可能就会遇到这样的题目. 实例代码 #include "stdio.h" #include ...
- C语言结构体对齐[转]
C语言结构体对齐也是老生常谈的话题了.基本上是面试题的必考题.内容虽然很基础,但一不小心就会弄错.写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的 ...
- linux windows 结构体,Linux下C语言——结构体对齐
结构体对齐的步骤: 1.结构体各成员对齐 2.整个结构体圆整 结构体对齐的特定对齐值: 1.自身对齐值: 自身对齐值就是结构体变量里每个成员的自身大小; 2.指定对齐值: 指定对齐值是由宏#pragm ...
- 再看结构体对齐与小端联合问题
再看结构体对齐与小端联合问题 @(组成原理) 先再次回看一道题目的分析. (2012.15)某计算机存储器按字节编址,采用小端方式存放数据.假定编译器规定int型和short型长度分别为32位和16位 ...
最新文章
- mysql 分页排序
- linux python qt 安装目录,Linux 下QT调用Python库文件 以及Linux 安装Python3.8开发环境 问题...
- iOS--动画demo--Launch Image淡出效果
- 部署docker-consul群集,Harbor构建Docker私有仓库
- hibernate4调用mysql存储过程_hibernate调用存储过程
- xv6/调度算法及并发程序设计
- SAP License:SAP中的权限与破解
- 有关Kali处理源的方法
- WCF服务启动时遇到AddressAccessDeniedException
- Android adb重启手机
- 智慧交通综合管理平台建设方案
- 如何下载无水印的抖音视频?
- 说说react-custom-scrollbars插件在react hooks版本中的使用
- 实习周记----第三周
- Do we need an operating system?
- css实现跑马灯效果
- 如何让腾讯微博搜索排名靠前?
- android+平板+输入法,搜狗推首款Android3.0平板电脑输入法
- 计算机网络技术毕业生实习报告_计算机网络技术实习报告
- HNOI2011 数学作业
热门文章
- opengl加载显示3D模型MDL类型文件
- OpenCASCADE:教程概述
- boost::lexicographical_compare相关的测试程序
- boost::pfr::for_each_field相关的测试程序
- boost::mp11::mp_empty相关用法的测试程序
- boost::log模块测试get_attributes()这个const方法可以获取线程模型内部的互斥锁
- boost::hana::drop_front用法的测试程序
- boost::gil::is_homogeneous用法的测试程序
- boost的chrono模块线程时钟的测试程序
- ITK:两个图像的基本全局注册