自己做的网站提示危险,周村网站制作价格低,东莞网站建设哪家专业,哈尔滨建站人结构体内存拷贝的两种方法前言内容总结前言
最近看一些代码#xff0c;发现内存拷贝的两种方式#xff0c;下面我就来介绍一下两种方式。
内容
首先定义一个结构体processorHead.h#xff1a;
#pragma pack(1)typedef struct
{short b;int c;long long d;
}DATA;#pragma…
结构体内存拷贝的两种方法前言内容总结前言
最近看一些代码发现内存拷贝的两种方式下面我就来介绍一下两种方式。
内容
首先定义一个结构体processorHead.h
#pragma pack(1)typedef struct
{short b;int c;long long d;
}DATA;#pragma pack()第一种方法就是常用的memcpy函数结构体数组也同样适用
DATA data;
......
int len sizeof(data); //数据长度
char *buffer new char[len];
memcpy(buffer,data,len); //data为结构体数据第二种方法
DATA data;
......
int len sizeof(data); //数据长度
char *buffer new char[len];
DATA *param (DATA *)buffer;
param-b data.b;
param-c data.c;
param-d data.d;总结
第一种方法可以快速对结构体内容进行复制而第二种则比较繁琐但当只需要结构体内某些类型的数值时第二种方法可以进行方便的选择性的复制只需要定义新的结构体。