查看: 404  |  回复: 0
  内存拷贝CopyMemory与MoveMemory
楼主
发表于 2024年2月28日 15:48

CopyMemory是一个Windows API函数,它能将一块内存数据从一个位置复制到另一个位置;

函数原型:

void CopyMemory(
PVOID  Destination,    //要复制内存块的目的地址。
const VOID   *Source,   //要复制内存块的源地址。
 SIZE_T Length          //指定要复制内存块的大小,单位为字节
);

该函数没有返回值

如果目的块与源块有交叠,结果是不可预料的,因为CopyMemory没有考虑重叠的部分,因此他不能保证重叠部分是否被复制,

可以使用MoveMemory可以解决这个问题

MoveMemory函数原型

VOID RtlMoveMemory(
VOID UNALIGNED *Destination,       //要复制内存块的目的地址。
const VOID UNALIGNED *Source,    //要复制内存块的源地址。
SIZE_T Length                                    //指定要复制内存块的大小,单位为字节
);

该函数没有返回值


您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2024 MaNongKu.com