文章目录
一、c语言中memcpy与memmove函数
1,memcpy(内存拷贝函数)
头文件<string.h>
功能:从源头指向的内存块 拷贝固定字节数的数据到 目标指向的内存块.
使用方法:void * memcpy ( void * destination, const void * source, size_t num );
1:void * destination:第一个参数指针是无类型的void(因为不知道拷贝的数据是什么类型所以用void),它指向拷贝的目的地内存块。
2:.const void * source:这个参数类型表示的是指向拷贝数据来源的内存块。const表示无法被修改的(在函数中以及确定好要拷贝的数据为了安全性前面加const表示无法被修改)
3:size_t num:(也可以用unsight int类型定义。无符号整形)第三个参数的类型是size_t(无符号整形),它表示要拷贝数据的字节数,它的作用是告诉函数需要拷贝的字节数是多少,以便函数精准的拷贝该数目字节数空间的内容到目的地.
2,memmove(内存拷贝函数)
使用方法:void * memmove ( void * destination, const void * source, size_t num );
头文件<string.h>
功能:从源头指向的内存块 拷贝固定字节数的数据到 目标指向的内存块(具有解决内存重叠的功能).
二、memcpy的实现逻辑
代码如下:
#include <stdio.h>
#include <assert.h>
//模拟实现memcpy()函数 字节拷贝
void * my_memcpy(void* dest,const void* src,size_t n){
while (n--)
{
*(char*)dest = *(char *)src;
dest =