C语言:模拟实现memcpy

原创 2016年05月30日 17:15:30

    模拟实现内存拷贝函数memcpy(),该特点与strcpyhttp://10740184.blog.51cto.com/10730184/1714516  比较就是不管是不是string类型均可以比较,只是单纯内存的比较。

void *my_memcpy(void *p1,const void *p2, size_t count)

    设置为空类型是考虑到接收任何类型的转换,无需强制转换。而考虑到p1,p2,sizeof(p1)是地址,=4。而*p是空类型, 不知道访问多少个字节来取内容。因此有以下操作:

 char *dest = (char *)p1;
 char *src = (char *)p2;

    size_t是unsigned int 型,字节数,即类型长度与串长度乘积。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

void *my_memcpy(void *p1,const void *p2, size_t count)
{
    assert(p1);
    assert(p2);
    char *dest = (char *)p1;
    char *src = (char *)p2;
    char *ret = dest;
    while (count--)
    {
        *dest = *src;
        src++;
        dest++;
    }
    return ret;
}

int main()
{
    float arr1[] = { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 };
    float arr2[10];
    int i = 0;
    int len = sizeof(arr1);
    float *ret = my_memcpy(arr2, arr1,len );
    for (i = 0; i < 9; i++)
    {
        printf("%f ", *(ret + i));
    }
    system("pause");
    return 0;
}


c语言内存管理函数,模拟memcpy、memmove(实现内存重叠拷贝)、memset

c语言内存管理函数,模拟memcpy、memmove(实现内存重叠拷贝)、memset

C语言模拟实现memcpy、memmove、memset

1,模拟实现memcpy功能:内存拷贝函数 代码:void* my_memcpy(void* dest, void* src, size_t n) { void* ret = dest; ...

C语言 string及memcpy,memmove函数的模拟实现

模拟实现部分字符串操作函数及内存拷贝函数

c语言中字符串函数strlen()、strcat()、strcpy()、strcmp()及内存操作函数memset()、memcpy()、memcmp()、memmove()的使用及编码实现

c语言中字符串函数strlen()、strcat()、strcpy()、strcmp()及内存操作函数memset()、memcpy()、memcmp()、memmove()的使用及编码实现 str...

C语言中strcpy与memcpy函数实现与区别

C语言中strcpy与memcpy函数是怎么实现的又有哪些区别呢?下面就与我来简单的介绍下吧,希望大家多给点意见,欢迎评论纠正错误。 6.2 字符串与数组 字符串一般是用字符数组的方式存储...

c语言中的memcpy实现

本文通过汇总一些网上搜集到的资料,总结c语言中的memcpy实现 背景 想必大多数人在面试时被要求写 memcpy的实现,很不幸,我也吃过这个亏(这种题要是写的一塌糊涂后面完全没戏),所以还是得提前准...

C语言中的字符串拷贝函数strcpy和内存拷贝函数memcpy的区别与实现

strcpy和memcpy都是标准C库函数,它们有下面的特点。 strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符'\0'。 ...

C语言 memcpy函数(增加dst 从第一字节拷贝判断)的内部简单实现方式

刚学习C语言编程的时候,感觉C内部函数深不可测,通过代码很难实现。后来经常慢慢的学习过程,理解了部分C函数的实现方法,下面简单说下memcpy函数的内部实现方式之一。简单概括内存拷贝的含义:字节对齐字...

Java之System.arraycopy实现数组拷贝-类似C语言的memcpy

如果是复制一个一位数组,那么改变复制后的数组并不影响原数组。但是如果复制一个二维数组,那么改变其中任何一个数组,那么另一个的值也发生了变化。开始不是很明白,后来上网查了查资料,理解了其中奥妙。  ...
  • lqhed
  • lqhed
  • 2016年06月27日 20:01
  • 2339

c语言实现memcpy

c语言实现memcpy 今天到I 公司去面试,面试方式比较特殊,没有笔试,就是2 个面试官,一人一句轮番发问,涉及面很广,涉及到操作系统(MMU 、page out 、process/t...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言:模拟实现memcpy
举报原因:
原因补充:

(最多只允许输入30个字)