C语言:模拟实现memcpy
2015-11-18 23:33
369 查看
模拟实现内存拷贝函数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; }
相关文章推荐
- 一个关于if else容易迷惑的问题
- 一道sql面试题附答案
- C# 超高面试题收集整理
- 人人网javascript面试题 可以提前实现下
- PHP中设置一个严格30分钟过期Session面试题的4种答案
- 据说是雅虎的一份PHP面试题附答案
- php牛逼的面试题分享
- 一套比较完整的javascript面试题(部分答案)
- 小米公司JavaScript面试题
- 超级全面的PHP面试题整理集合第1/2页
- 5个实用的shell脚本面试题和答案
- PHP经典面试题集锦
- 8个PHP数组面试题
- PHP中提问频率最高的11个面试题和答案
- 用PHP解决的一个栈的面试题
- PHP面试题之文件目录操作
- 几道坑人的PHP面试题 试试看看你会不会也中招
- 5个JavaScript经典面试题
- Java高级面试题小结
- Java实现栈和队列面试题