memcpy()

1.如果我们需要对一个数组初始化,把数组的内容全部置0,那么能不能用strcpy()

int main()
{char arr1[10] = { 0 };char arr2[10] = " abcdefg ";strcpy(arr2, arr1);system("pause");return 0;
}

我们看到只有arr2[0]这一个元素被赋值 0,而其余元素均不变。所以我们需要一个新的函数完成“内存拷贝”memcpy()”

memcpy()

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

void * my_memcpy(void *dest, const void* src, int count)
{void * ret = dest;while (count--){*(char *)dest = *(char *)src;dest = (char *)dest + 1;src = (char *)src + 1;}return ret;}
int main()
{char arr1[10] = { 0 };char arr2[20] = "abcdef";printf("%s", my_memcpy(arr2, arr1, 6));system("pause");
}

(char )dest = (char )src;
dest = (char *)dest + 1;
src = (char *)src + 1;
这里不能写++运算符优先级问题++高

C语言模拟实现标准库函数之memcpy()相关推荐

  1. C语言模拟实现标准库函数之qsort() 2

    C语言模拟实现标准库函数之qsort() <1> https://blog.csdn.net/csdn_kou/article/details/80158194 排序数字 int int_ ...

  2. C语言模拟实现标准库函数之strcpy()

    strcpy(dest,src) strcpy是一种C语言的标准库函数,strcpy把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间,返回值的类型为char*. char ...

  3. C语言模拟实现标准库函数之qsort()

    qsort 编译器函数库自带的快速排序函数. void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void* ...

  4. C语言模拟实现标准库函数之strcmp()

    strcmp() C/C++函数,比较两个字符串 设这两个字符串为str1,str2, 若str1==str2,则返回零: 若str1<str2,则返回负数: 若str1>str2,则返回 ...

  5. C语言模拟实现标准库函数之strchr()

    strchr() 查找字符串s中首次出现字符c的位置 char * my_strchr(char *str1, char str2) {while (*str1 != str2 && ...

  6. C语言模拟实现标准库函数之strstr()

    strstr() strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串.如果是,则该函数返回str2在str1中首次出现的地址:否则,返回NULL. char* my_s ...

  7. C语言模拟实现标准库函数之strcat()

    strcat() strcat用于将两个char类型链接的函数. char * my_strcat(char *str1, char *str2) {assert(str2);assert(str1) ...

  8. C语言模拟实现标准库函数之strlen()

    strlen() strlen所作的仅仅是一个计数器的工作,它从内存的某个位置 (可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域) 开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返 ...

  9. c语言 标准库 定时器,C中的标准库函数time函数详解

    C语言中的标准库函数包括一系列日期和时间处理函数,它们都在头文件中说明.下面列出了这些函数.在头文件中定义了三种类型:time_t,struct tm和clock_t. 在头文件中说明的C语言时间函数 ...

最新文章

  1. 小蛮机器人如何联网_国际相对论第三期——机器人与物联网的碰撞
  2. SAP QA32 做使用决策系统报错:分类数据的不一致性=交易终止
  3. application/x-www-form-urlencoded multipart/form-data text/plain 的区别和作用
  4. Java多线程设计模式(1)
  5. Android组件化开发实践(九):自定义Gradle插件
  6. 2019.5.8_此书真乃宝书也_从定位参数到仅限关键字参数
  7. 【视频内含福利】原来手机套壳视频是这么做出来的
  8. JIRA 5.0.1 发布
  9. table超出边框出现滚动条_精美横轴智能滚动条设计
  10. NFS与NAS谁更适合VMware
  11. iOS开发常用快捷键
  12. 深度学习(三十一)基于深度矩阵分解的属性表征学习
  13. mysql怎么查主键是否重复数据库_数据库插入前判断主键重复与否的方法
  14. python读取数据流_IOError:读取图像fi时数据流中断
  15. SpringBoot酒店管理系统 hotel.liuyanzhao.com
  16. 什么是3D打印?游戏建模具体怎么做?哪个更有发展
  17. 全志平台camera驱动开发(3)MIPI接口camera驱动开发
  18. PPT2016内嵌Excel的动态图表
  19. ST官方的IIC实例解析(第一部分)
  20. 2021辽宁省赛-I.完美主义-M.比赛

热门文章

  1. input点击链接另一个页面,各种操作。
  2. python 数据类型之间的转换
  3. [Swift]LeetCode1118. 一月有多少天 | Number of Days in a Month
  4. 30分钟学会使用grunt打包前端代码
  5. 无线智能路由器家长控制宽带
  6. 服务器角色与数据库角色
  7. CodePage简介(转)
  8. ntp如何确认与服务器偏差_LED电子时钟显示屏如何实现时间同步统一校时?
  9. lisp 揭 院长_HISLISPACSRIS EMR系统简介
  10. 广联达2018模板算量步骤_广联达gtj2021实操案例,新增6大板块,快速提高算量效率...