1) memcpy():
主要实现的是两段内存的复制
2) memset():
实现对一段内存进行初始化
3)memmove():
主要是实现一段内存的内容移动到另一段内存。
实现的代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
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 <= src || (char*)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;
}
分享到:
相关推荐
C语言中memcpy 函数的用法详解 memcpy(内存拷贝函数) c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。 void* memcpy(void* ...
主要介绍了C语言中的memset()函数,包括其与memcpy()函数的区别,需要的朋友可以参考下
那么既然memcpy和memmove二者都是内存拷贝,那二者究竟有什么区别呢? 先说memcpy 你有没有好好的参加过一场C++笔试。让你写出memcpy的实现,这是多么常见的笔试题啊。现在,拿起你的演算纸和笔;是的,是笔和纸,...
常用函数的实现strcpy,memcpy,memmove,strcat,strcmp原型
今天看到书上降到memcpy和memmove的区别才突然发现原来两者之间有如此区别,以前只知道这两个函数是 实现同样的功能,没有接触到其不同。 memcpy和memmove在MSDN的定义如下: 从两者的声明来看的确没有区别,我们来...
memcpy函数c语言实现代码
本文详细介绍了Memset、Memcpy、Strcpy 的作用及三者的区别,函数原型及使用技巧等。
主要介绍了C语言 strcpy和memcpy区别详细介绍的相关资料,需要的朋友可以参考下
不调用C库函数实现memmove-memcpy函数功能。
博文地址:http://blog.csdn.net/conanswp/article/details/21642331 主要包括C语言中memset、memcpy、malloc等函数的使用
。。。
一个使用memcpy的实现版本,考虑内存重叠以及效率
strcpy,strncpy,strcat,strncat,strcmp,strncmp,strchr,strnchr,strlen,strnlen,strspn,strpbrk,strtok,strsep,memset,bcopy,memcpy,memmove,memcmp,memscan,strstr,memchr.函数具体实现内容。对理解C语言和C编程有...
优化linux系统memcpy,及memset,这两个命令占比系统非常高,现用汇编来优化
单片机下实现的部分经典C库函数,包括printf,memset等,可以用来学习printf源码实现方法,还包括了memset,memcpy,memcmp,strtok,strlen,sprintf,printf函数的C语言实现方法