gpt4 book ai didi

c - 如何快速将原始内存转储到结构中?

转载 作者:太空宇宙 更新时间:2023-11-04 05:51:50 24 4
gpt4 key购买 nike

我在标识映射内存上下文(x86_64 平台上的 UEFI)中,我想将一些连续的内存内容转储到一个结构中。假设我的结构具有这种形状:

typedef struct _mystr {
char char_arr[7];
uint32_t u_d;
uint8_t u_b;
} __attribute__((packed)) mystr;

假设我在 mem_ptr 中有请求内存偏移量 0 的地址,将其内容复制到 mystr 实例中的最佳方法是什么?有没有一种方法可以做到这一点而不用循环遍历内存(这看起来 super 无聊)?


EDIT:Nicolas Jean 建议使用 memcpy 但不幸的是,在 EFI 开发上下文中,使用 C 标准库意义不大.然而,来自 gnu-efiefilib.hCopyMem(IN VOID * dst, IN CONST VOID * src, IN UINTN len) 执行相同的任务。

最佳答案

用memcpy复制内存内容大概就是你要找的。

mystr mystr_instance;
memcpy(&mystr_instance, mem_ptr, sizeof(mystr_instance));

关于c - 如何快速将原始内存转储到结构中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39407644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com