c语言中memmove用法,C语言中memcpy、memset和memmove的实现 您所在的位置:网站首页 C语言中的count c语言中memmove用法,C语言中memcpy、memset和memmove的实现

c语言中memmove用法,C语言中memcpy、memset和memmove的实现

2022-12-28 23:20| 来源: 网络整理| 查看: 265

1) memcpy():

主要实现的是两段内存的复制

2) memset():

实现对一段内存进行初始化

3)memmove():

主要是实现一段内存的内容移动到另一段内存。

实现的代码如下:

#include

#include

#include

void* Mymemcpy(void* dest, const void* src, unsigned int size)

{

unsigned int i = 0;

char* p = (char*)dest;

char* q = (char*)src;

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

if(size > 0)

{

while((i < size) && (*(p + i) = *(q + i)))

i++;

return dest;

}

return NULL;

}

void* Mymemset(void* dest, int ch, unsigned int size)

{

unsigned int i = 0;

unsigned char* p = (unsigned char*)dest;

while((i < size) && (*(p + i) = ch))

{

i++;

}

return dest;

}

void* Mymemmove(void* dst, const void* src, unsigned int count)

{

void *ret = dst;

if(dst = ((char*)src + count))

{

while(count--)

{

*(char*)dst = *(char*)src;

dst = (char*)dst + 1;

src = (char*)src + 1;

}

}

else

{

dst = (char*)dst + count - 1;

src = (char*)src + count - 1;

while(count--)

{

*(char*)dst = *(char*)src;

dst = (char*)dst - 1;

src = (char*)src - 1;

}

}

return(ret);

}

int main()

{

int size;

char* p = (char*)malloc(10 * sizeof(char));

char* dst = (char*)malloc(5 * sizeof(char));

Mymemset(p,'a',10);

puts(p);

Mymemmove(dst, p, 5);

puts(dst);

system("pause");

return 0;

}



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有