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语言 string及memcpy,memmove函数的模拟实现

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

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

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

c语言实现memcpy

c语言实现memcpy 今天到I 公司去面试,面试方式比较特殊,没有笔试,就是2 个面试官,一人一句轮番发问,涉及面很广,涉及到操作系统(MMU 、page out 、process/t...

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

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

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

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

c语言实现memcpy

今天到I 公司去面试,面试方式比较特殊,没有笔试,就是2 个面试官,一人一句轮番发问,涉及面很广,涉及到操作系统(MMU 、page out 、process/thread 、semapho...

【C语言】memcpy函数的实现

1函数原型 void *memcpy(void *dest, const void *src, size_t n); 2功能 从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指...

memcpy/memset函数的c语言实现

1、memcpy 头文件:#include 函数原型:void *memcpy(void *dest, const void *src, size_t n) 功能:将指针src指向的内存空间的...

strcpy 与memcpy 的用法以及C语言实现

c 函数库的函数 strcpy 的原形为: char *strcpy(char *strDes,const char * strSrc) strcpy按字面理解为:string copy,字符串复制。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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