1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 自己实现内存操作函数memset() memcmp() memcpy() memmove()

自己实现内存操作函数memset() memcmp() memcpy() memmove()

时间:2018-08-23 06:28:11

相关推荐

自己实现内存操作函数memset() memcmp() memcpy() memmove()

1.memset()内存设置函数(初始化)

void*my_memset(void* dest, intc, size_tcount)

{

assert(dest!= NULL);

char*pdest = (char*)dest;

while(count-->0)

{

*pdest++ = c;

}

returndest;

}

2.memcmp()内存比较函数

intmy_memcmp(constchar* str1, constchar* str2, size_tcount)

{

assert(str1!= NULL&&str2!= NULL);

constchar*pstr1 = str1;

constchar*pstr2 = str2;

intresult = 0;

while(count-- > 0)

{

if((result=*pstr1++-*pstr2++) != '\0')

break;

}

if(result > 0)

result = 1;

elseif(result < 0)

result = -1;

returnresult;

}

3.memcpy()内存拷贝函数

内存拷贝函数是出题率最高的,在实现时需注意内存覆盖的问题

void*my_memcpy(void* dest, constvoid* src, size_tcount)

{

assert(dest!= NULL&&src!= NULL);

char* pdest =(char*) dest;

constchar* psrc =(constchar*) src;

if(psrc > pdest || pdest >= psrc + count)

{

while(count--)

*pdest++ = *psrc++;

}

else

{

while(count--)

{

*(pdest + count) = *(psrc + count);

}

}

returndest;

}

4.memmove()内存移动函数

内存移动函数的实现方法完全跟内存拷贝函数实现方法一样,但在使用中还是有细小差别的。但在这里我们就不详细论述他们的差别了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。