C语言模拟实现标准库函数之memcpy()
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()相关推荐
- C语言模拟实现标准库函数之qsort() 2
C语言模拟实现标准库函数之qsort() <1> https://blog.csdn.net/csdn_kou/article/details/80158194 排序数字 int int_ ...
- C语言模拟实现标准库函数之strcpy()
strcpy(dest,src) strcpy是一种C语言的标准库函数,strcpy把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间,返回值的类型为char*. char ...
- C语言模拟实现标准库函数之qsort()
qsort 编译器函数库自带的快速排序函数. void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void* ...
- C语言模拟实现标准库函数之strcmp()
strcmp() C/C++函数,比较两个字符串 设这两个字符串为str1,str2, 若str1==str2,则返回零: 若str1<str2,则返回负数: 若str1>str2,则返回 ...
- C语言模拟实现标准库函数之strchr()
strchr() 查找字符串s中首次出现字符c的位置 char * my_strchr(char *str1, char str2) {while (*str1 != str2 && ...
- C语言模拟实现标准库函数之strstr()
strstr() strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串.如果是,则该函数返回str2在str1中首次出现的地址:否则,返回NULL. char* my_s ...
- C语言模拟实现标准库函数之strcat()
strcat() strcat用于将两个char类型链接的函数. char * my_strcat(char *str1, char *str2) {assert(str2);assert(str1) ...
- C语言模拟实现标准库函数之strlen()
strlen() strlen所作的仅仅是一个计数器的工作,它从内存的某个位置 (可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域) 开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返 ...
- c语言 标准库 定时器,C中的标准库函数time函数详解
C语言中的标准库函数包括一系列日期和时间处理函数,它们都在头文件中说明.下面列出了这些函数.在头文件中定义了三种类型:time_t,struct tm和clock_t. 在头文件中说明的C语言时间函数 ...
最新文章
- 小蛮机器人如何联网_国际相对论第三期——机器人与物联网的碰撞
- SAP QA32 做使用决策系统报错:分类数据的不一致性=交易终止
- application/x-www-form-urlencoded multipart/form-data text/plain 的区别和作用
- Java多线程设计模式(1)
- Android组件化开发实践(九):自定义Gradle插件
- 2019.5.8_此书真乃宝书也_从定位参数到仅限关键字参数
- 【视频内含福利】原来手机套壳视频是这么做出来的
- JIRA 5.0.1 发布
- table超出边框出现滚动条_精美横轴智能滚动条设计
- NFS与NAS谁更适合VMware
- iOS开发常用快捷键
- 深度学习(三十一)基于深度矩阵分解的属性表征学习
- mysql怎么查主键是否重复数据库_数据库插入前判断主键重复与否的方法
- python读取数据流_IOError:读取图像fi时数据流中断
- SpringBoot酒店管理系统 hotel.liuyanzhao.com
- 什么是3D打印?游戏建模具体怎么做?哪个更有发展
- 全志平台camera驱动开发(3)MIPI接口camera驱动开发
- PPT2016内嵌Excel的动态图表
- ST官方的IIC实例解析(第一部分)
- 2021辽宁省赛-I.完美主义-M.比赛
热门文章
- input点击链接另一个页面,各种操作。
- python 数据类型之间的转换
- [Swift]LeetCode1118. 一月有多少天 | Number of Days in a Month
- 30分钟学会使用grunt打包前端代码
- 无线智能路由器家长控制宽带
- 服务器角色与数据库角色
- CodePage简介(转)
- ntp如何确认与服务器偏差_LED电子时钟显示屏如何实现时间同步统一校时?
- lisp 揭 院长_HISLISPACSRIS EMR系统简介
- 广联达2018模板算量步骤_广联达gtj2021实操案例,新增6大板块,快速提高算量效率...