内存操作函数memcpy函数,memmove函数,memcmp函数,memset函数

目录

memcpy函数,memmove函数,memcmp函数,memset函数

1.memcpy

模拟实现memcpy函数

2.memmove

模拟实现memmove函数

 3.memcmp

 4.memmset

memmset使用方法

1.memcpy

void* memcpy(void* destination, const void* source, size_t num);
void* dest 目标内存    const void* src  源内存    size_t num  字节个数

memcpy内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。

模拟实现memcpy函数

void* my_memcpy(void* dest, const void* src, size_t aq)
{
	void* as = dest;
	while (aq--)
	{
		*(char*)dest = *(char*)src;
		dest = (char*)dest + 1;
		src = (char*)src + 1;
	}
	return as;
}

2.memmove

用于内存拷贝的函数,没有类型限制

void * memmove(void * destination, const void * source, size_t num);

模拟实现memmove函数

内存操作函数memcpy函数,memmove函数,memcmp函数,memset函数_第1张图片

 3.memcmp

内存操作函数memcpy函数,memmove函数,memcmp函数,memset函数_第2张图片

 4.memmset

void *memset(void *aq, int c, unsigned long n);

函数的功能是:将指aq 所指向的前 n 字节的内存单元用一个“整数” c 替换,注意 c 是 int 型。s 是 void* 型的指针变量,所以它可以为任何类型的数据进行初始化

memmset使用方法

#include
int main()
{
	int arr[1000] = { 1,2,3,4,5,524,851 };
	memset(arr, 0, 100);
	return 0;
}

其实这个函数就是将arr这个数组的前多少个字节替换

如上面的代码就是将arr数组的前100个字节替换成0

arr数组可以为任意类型

0也可改成任意数

最后要改几个字节自己定

你可能感兴趣的:(c语言,c++)