内存操作函数(memset,memcmp,memcpy)的实现

在对这些内存操作时,这些函数首先,都是使用的是无类型指针,即泛型指针。其次,他们都是对字节进行操作的,因此这两点保证了他们可以对任何类型数据进行操作。 

一、memset内存的初始化,我们给出memset函数的声明·

void *memset( void *dest, int c, size_t count ); 
第一个参数 void *dest 起始位置。
第二个参数 int c 初始化为什么值,一般根据自己的情况进行初始化。
第三个参数 size_t count 字节数的大小,就是你要初始化的空间大小。

下来我们对这个memset()函数进行实现:

1、判断参数的有效性。

2、保护参数,因为最终你要返回一直指针所指位置以后的数据,我们就要进行保护参数。

3、这里我们要注意保护参数的同时要转换类型,对于空类型指针来说可以转换为任何类型的指针,因此这一就是我们为什么要用空类型指针。

4、就是进行初始化的工作。

void*  my_memset(void* dest, int c, size_t count)
{
	//判断参数有效性
	assert(dest != NULL);
	//保护参数
	char* p1= (char*)dest;//转换类型
	while (count-- != 0)
	{
		*p1++ = c;
	}
	return
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘小小@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值