C语言中如何将结构体中的值赋给BYTE类型的缓存?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中如何将结构体中的值赋给BYTE类型的缓存?相关的知识,希望对你有一定的参考价值。

BYTE test1[1024*100]

typedef struct

DWORD TASK1;
WORD TASK2;
WORD TASK3;
STU

struct tttt

STU STUDENT[80];
STU STUDENT2[80];

如题,需要将TTTT中的两个数组里的值依次赋值到test1里,具体要怎么写呢?

C语言中将结构体给BYTE缓存赋值时,直接进行拷贝即可。

结构体在内存中是一段连续的内存空间,BYTE缓存(即BYTE数组)也是一段连续的内存空间,直接进行内存拷贝就可以完成赋值操作。

例如:

struct A 
    int a;
    short b;
 dataStruct;
BYTE dataBuffer[20];
memcpy(dataBuffer, dataStruct, sizeof(struct A)); //对Byte缓存赋值
memcpy(dataStruct, dataBuffer, sizeof(struct A)); //对结构体赋值

参考技术A void *memcpy(void *dest, const void *src, size_t n);
从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中

memcpy(&test1, &TTTT, sizeof(TTTT))本回答被提问者采纳

以上是关于C语言中如何将结构体中的值赋给BYTE类型的缓存?的主要内容,如果未能解决你的问题,请参考以下文章

C语言,请问如何将结构体中的结构体拷贝到内存

C语言,请问如何将结构体中的结构体拷贝到内存

C语言,结构体中的数组怎么赋值,?

c语言结构体能否整体赋值

c语言中能把一个二维数组的值赋给一个一维数组吗

c语言实现交换两个整数 三种常见方法