浅谈C语言中的memcpy与memmove函数_c语言memcpy 目标地址为空-程序员宅基地

技术标签: c语言  

以下为memmove的简单实现

#include<stdio.h>

#include<assert.h>

#include<stdlib.h>

#include<string.h>

//第一个1参数:目的地

//第二个参数:数字来自于哪里

//第三个参数:拷贝的长度(单位为字节)

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

{

    void*ret=dest;

    assert(dest !=NULL);

    assert(src !=NULL);

    if(dest<src)

    {

        while(count--)

        {

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

            (char*)dest;

            dest++;

            (char*)src;

            src++;

        }

    }

    else

    {

        while(count--)

        {

            *((char*)dest+count)=*((char*)src+count);

        }

    }

    returnret;

}

int main()

{

    int arr[]={1,2,3,4,5,6,7,8,9,10};//将1,2,3,4,5的数据拷贝到3,4,5,6,7上去

    inti=0;

    my_memmove(arr+2,arr,8);

   

    for(i=0;i<10;i++)

    {

        printf("%d",arr[i]);

    }

    return0;

}

以下为memcpy函数的简单实现

#include<stdio.h>

#include<assert.h>

#include<stdlib.h>

#include<string.h>

//第一个1参数:目的地

//第二个参数:数字来自于哪里

//第三个参数:拷贝的长度(单位为字节)

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

{

    char*ret=dest;

    assert(dest!=NULL);

    assert(src !=NULL);

    

    while(count--)

    {

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

        (char*)dest;

        dest+=1;

        (char*)src;

        src+=1;

    }

    returnret;

}

int main()

{

    int arr[]={1,2,3,4,5,6,7,8,9,10};//将1,2,3,4,5的数据拷贝到3,4,5,6,7上去

    inti=0;

    my_memcpy(arr+5,arr,20);

    for(i=0;i<10;i++)

    {

        printf("%d",arr[i]);

    }

    return0;

}

memcopy不支持重叠内存拷贝,memmove支持重叠内存拷贝

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_62684026/article/details/123692652

智能推荐

PanDownload复活了!60MB/s!-程序员宅基地

文章浏览阅读405次。(软件下载方式在文末)自从 PanDownload 被处理之后一直没有超越它的可替代的应用出来但是最近,竟然有人接盘了!重新制作上线推出了更加强劲的复活版!放张图,大家先感受下60MB/..._.较好的容灾处理(眼神暗示)

俺也来祭祭熊猫-程序员宅基地

文章浏览阅读5.2k次。最近熊猫烧香肆虐,WC里CIM那群人集体中招,俺的机子裸奔竟然也没事,呵呵。刚好python的邮件列表上有人给“熊猫”玩文字游戏,觉得特有意思,拿出来和大家分享一下 。 床前明月光,熊猫在烧香。专杀杀不尽,两眼泪汪汪。 熊猫烧不尽,关机开又生。   宝剑锋从磨砺出,熊猫香自网上来。   无边香火烧烧下,不尽熊猫滚滚来。身心俱疲终不悔,为猫烧得人憔悴。 相见时难杀亦难,熊猫烧

影响力在职场的重要性_职权影响力-程序员宅基地

文章浏览阅读7.8k次。前端时间参加了公司的管理培训,讲非职权影响力。对于领导者来讲,如果不能提高自己的影响力,那么是没办法做到让下属信服和追随的。整理了一下培训的收获。 影响力的定义运用一些别人所乐于接受的方式,改变他人的思想和行动,具体有个性、思想,以及行动。这些方式包括:举例引证、造成恐惧、赞美肯定、权势财富等。 影响力的6大武器互惠 承诺一致 社会认同 喜好 权威 稀缺另外次要..._职权影响力

用Vue制作记事本_vue选中文字做笔记-程序员宅基地

文章浏览阅读765次,点赞2次,收藏7次。先放个效果图吧制作记事本一共分为五个部分。1、第一部分就是添加内容。目的是输入内容后按下enter能够在目录下出现对应的内容,此部分应用v-for,v-model以及v-text完成,html程序如下<div id="app"> <input id="text" type="text" v-model="addValue" @keyup.enter="add" placeholder="请输入内容"> <ul> <li v-f_vue选中文字做笔记

Web安全--反序列化漏洞详解(php篇)-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏9次。反序列化

“实践型”高级软件工程师精英成就计划,向年薪10W冲刺!-程序员宅基地

文章浏览阅读2.4k次。 “实践型”高级软件工程师精英成就计划学习方向:ü 进军IT行业,学完就业竞争力很强,薪酬一般比较高,目前坚持下来的学生全部就业,整体就业水平高于华工计算机系的水平.ü 攻读计算机或软件学院等相关专业的研究生.ü 考高级程序员(企业中级职称)或系统分析师(高级职称)。ü 以IT增强专业能力和开拓专业视野。师资力量:u

随便推点

域名讲解(一)域名基础概念-程序员宅基地

文章浏览阅读8k次,点赞4次,收藏26次。它作为可以将域名和IP地址相互映射的一个分布式数据库,是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的系统,搭载域名系统的机器称之为域名服务器,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址数串。,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。..._域名

CVPR 2021 | 250 FPS!让实时语义分割飞起!重新思考BiSeNet-程序员宅基地

文章浏览阅读3.3k次。点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达本文转载自:AI人工智能初学者Rethinking BiSeNet For Real-time Semantic Seg..._语义分割的fps

VC++6.0 使用TeeChart v8.0 绘制多条曲线及圆滑处理._vc 6.0 teechart8-程序员宅基地

文章浏览阅读6.6k次,点赞2次,收藏27次。 根据网络资源整合了一份, 并开发了自己的demo。http://download.csdn.net/detail/zdw86/9833470 一、添加控件(一)创建工程 (二)插入控件 (三)添加类 点完确认之后,要等很长一段时间.期间不要触碰VC++6.0否则程序..._vc 6.0 teechart8

分布式计算中的数据一致性:Paxos 与 Raft 对比-程序员宅基地

文章浏览阅读888次,点赞8次,收藏23次。1.背景介绍分布式系统是现代计算机系统的基础设施之一,它允许多个计算节点在网络中协同工作。随着分布式系统的发展和应用,数据一致性问题变得越来越重要。在分布式计算中,数据一致性是指在分布式系统中的多个节点能够同步获取和更新相同的数据,以确保数据的一致性。在分布式系统中,数据一致性问题主要由于节点之间的异步通信和故障导致的数据不一致。为了解决这个问题,人们提出了一种称为Paxos和Raft的一...

Angular中父组件通过ViewChild调用子组件的方法_angualr viewchild可以调用方法,但是调用不了其他的方法-程序员宅基地

文章浏览阅读940次。场景Angualr中通过原生js和ViewChild的方式获取dom:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/105860965通过ViewChild不仅可以获取dom还可以实现在父组件中调用子组件的方法。注:博客:https://blog.csdn.net/badao_liumang_qizhi 关..._angualr viewchild可以调用方法,但是调用不了其他的方法

利用tinyproxy云服务器配置成代理服务器-程序员宅基地

文章浏览阅读6k次,点赞2次,收藏37次。利用tinyproxy来将自己的云服务器设置成代理服务器_tinyproxy

推荐文章

热门文章

相关标签