结构体内存拷贝的两种方法
生活随笔
收集整理的這篇文章主要介紹了
结构体内存拷贝的两种方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
結構體內存拷貝的兩種方法
- 前言
- 內容
- 總結
前言
最近看一些代碼,發現內存拷貝的兩種方式,下面我就來介紹一下兩種方式。
內容
首先定義一個結構體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;總結
第一種方法可以快速對結構體內容進行復制,而第二種則比較繁瑣,但當只需要結構體內某些類型的數值時,第二種方法可以進行方便的選擇性的復制,只需要定義新的結構體。
總結
以上是生活随笔為你收集整理的结构体内存拷贝的两种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux内核开发-入门篇
- 下一篇: 《HelloGitHub》第 52 期