已知memcpy的函数为: void* memcpy(void *dest , const void* src , size_t count)其中dest是目的指针,src是源指针。不调用c++/c的memcpy库函数,请编写memcpy。

功能:从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。

说明

1.source和destin所指的内存区域可以重叠,但是如果source和destin所指的内存区域重叠,那么这个函数并不能够确保source所在重叠区域在拷贝之前被覆盖。而使用memmove可以用来处理重叠区域。函数返回指向destin的指针。
2.strcpy和memcpy主要有以下3方面的区别。
2.1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。
2.2、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。
2.3、用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy。
3.如果目标数组destin本身已有数据,执行memcpy()后,将覆盖原有数据(最多覆盖n)。如果要追加数据,则每次执行memcpy后,要将目标数组地址增加到你要追加数据的地址。
注意:source和destin都不一定是数组,任意的可读写的空间均可。

代码

 1 void* memcpy(void *dst, const void *src, size_t count)
 2 {
 3     //安全检查
 4     assert( (dst != NULL) && (src != NULL) );
 5
 6     unsigned char *pdst = (unsigned char *)dst;
 7     const unsigned char *psrc = (const unsigned char *)src;
 8
 9     //防止内存重复
10     assert(!(psrc<=pdst && pdst<psrc+count));
11     assert(!(pdst<=psrc && psrc<pdst+count));
12
13     while(count--)
14     {
15         *pdst = *psrc;
16         pdst++;
17         psrc++;
18     }
19     return dst;
20 }    

关于strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数

也是可能考的知识点。

本文转自夏雪冬日博客园博客,原文链接:http://www.cnblogs.com/heyonggang/p/3394280.html,如需转载请自行联系原作者

网新恒天2014校园招聘笔试编程题相关推荐

  1. 商汤科技 2019校园招聘笔试编程题-2018.09.07

    本来阿里和商汤冲突了,就放弃了阿里的劝退型笔试,结果,商汤也劝退,只发一下题目做参考吧!知道题解的同学可以在评论区粘上链接,我会随时更新并加以感谢的.

  2. 滴滴 2019校园招聘笔试编程题-2018.09.18

    输入: slep slap sleep step shoe shop snap slep 输出: slep slap step 代码是交卷后写出来的,没有经过测试,不知道是否能够AC 利用DP求出每个 ...

  3. 奇虎360 2015校园招聘笔试编程题

    题目一: 写一个函数,根据两文件的绝对路径算出相对路径. 如a="/qihoo/app/a/b/c/d/new.c",b="/qihoo/app/1/2/test.c&q ...

  4. 奇虎360_2017校园招聘笔试编程题第一题

    今晚做了360的校招笔试题,编程题难度适中,在这里跟大家分享一下编程题的第一题. 1. 题目 2. 输入输出及样例 3. 我的思路 这题应该看题目理解一下就有思路,最简单粗暴的就是创建一个二维数组in ...

  5. 奇虎360_2017校园招聘笔试编程题第二题

    今晚做了360的校招笔试题,编程题难度适中,在这里跟大家分享一下编程题的第二题.第二道题也不难想到思路,但是如果写法不当,可能无法满足题目的时间限制. 1. 题目 2. 输入输出及样例 3. 我的思路 ...

  6. 京东2015校园招聘笔试编程题

    题目一: 请编写一个函数func,输入一个正整数n,返回一个最小的正整数m(m>9,即m至少包含两位数),使得m的各位乘积等于n,例如输入36,输出49:输入100,输出455,如果对于某个n不 ...

  7. 暴风影音2014校园招聘笔试题目-技术D卷

    /*暴风影音2014校园招聘笔试题目-技术D卷.6. m*n的网格从左上角A点走到右下角B点,每次可走一格,只能往右或下走.输出有多少种走法和所有路线数. */ #include <cstrin ...

  8. 搜狗2016校园招聘之编程题解析-大数据开发

    搜狗2016校园招聘之编程题解析-大数据开发 解题思路: 使用JDK中的Point2D类,该类定义了坐标系空间中的一个点 Point2D是一个抽象类,但是在该类内部定义了静态的Double类,并且Do ...

  9. 百度2014校园招聘笔试面试汇总

    目 录 1. 百度笔试 2 1.1百度2014校园招聘笔试题(成都站,软件研发岗) 2 1.2  2013百度校园招聘-机器学习和数据挖掘工程师-笔试题 7 1.3  百度2014校园招聘 技术研发题 ...

最新文章

  1. Linux下分割与合并文件的方法
  2. 谷歌翻译无法连接网络_Windows无法连接网络,这几招教你解决
  3. 多进程和多线程的区别
  4. Linux生成随机字符串
  5. HDU 1566 Count the Colors 树状树组 区间更新 单点求值
  6. JS动态添加、删除classl类
  7. iangularjs 模板,AngularJS模板中的三元运算符
  8. linux7新建用户,CentOS 7中添加一个新用户并授权
  9. vbs计算机病毒代码,vbs病毒的简单例子源代码解析
  10. DroidCam使用安卓手机当电脑摄像头
  11. 无法登陆skype显示无法找到服务器,无法登录 Lync,因为找不到此登录地址 - Skype for Business | Microsoft Docs...
  12. hiveserver2启动后beeline无法连接:root is not allowed to impersonate hah
  13. 开源项目推荐:物联网消息引擎EMQ X/大数据平台TDengine/可视化平台Grafana/dgiot
  14. Gluster相关命令
  15. vtop工具使用分析
  16. PHP之ctype扩展
  17. ubuntu安装有道词典
  18. Exif Editor For Mac(图像EXIF编辑器软件)
  19. 01-RobotStudio新建系统
  20. 一种改进的天鹰优化算法和非洲秃鹫混合优化算法(Matlab代码实现)

热门文章

  1. python学习:最适合初学者的8本Python书籍
  2. 无锡设计培训——平面设计师都学什么
  3. 四目大视场四目夜视镜 --TFN TD401 大视场头盔四目夜视仪 夜视镜 无需转头微光夜视系统 四目四管
  4. iis高并发 大量数据并发设置
  5. python脚本备份linux,linux利用bypy自动备份文件上传百度云
  6. 塔望食品品牌策划:内卷时代,食品品牌如何命名?
  7. java 0xff byte 越界,PClint错误码大全
  8. 计算机网络 | 路由器 | 路由器的工作原理
  9. 标准配置输入设备微型计算机,2012年计算机一级MsOffice第五十三套练习题及答案解析...
  10. STM8开发实例-I2C