memcpy的自定义实现的源代码
来源:互联网 发布:兄贵pat it 编辑:程序博客网 时间:2024/05/01 09:37
#include <stdio.h>
#include <string.h>
void *my_memcpy(void *dst, const void *src, unsigned int count)
{
int main()
{
#include <string.h>
void *my_memcpy(void *dst, const void *src, unsigned int count)
{
char *ret = NULL; //备份dst的地址,用于返回}
char *dst_t = NULL; //强制指针转换,指向dst或重新定位
char *src_t = NULL; //强制指针转换,指向src或重新定位
ret = (char *)dst;
//指针dst空间与指针src空间没有重叠部分,或部分重叠
//此时复制应该从头开始,以免src的内存空间被覆盖
if ((unsigned char *)dst <= (unsigned char *)src ||\
(unsigned char *)dst >= (unsigned char *)src + count)
{dst_t = (char *)dst;}
src_t = (char *)src;
while(count--)
{*dst_t++ = *src_t++;}
//指针dst空间落在指针src空间的中间部位
//此时复制应该从尾到头,以免src的内存空间被覆盖
else
{dst_t = (char *)dst + count -1;}
src_t = (char *)src + count -1;
while(count--)
{*dst_t-- = *src_t--;}
return ret;
int main()
{
char src[] = "abcdefg";}
char des[5] = {0};
char mydes[5] = {0};
memcpy(des, src, 4);
my_memcpy(mydes, src, 4);
printf("des: %s\nmydes: %s\n", des, mydes);
return 0;
0 0
- memcpy的自定义实现的源代码
- 微软strcpy,strcat和strcmp、memcpy的实现源代码
- memcpy的实现
- memcpy函数的实现
- 龙芯版 memcpy 的实现
- memcpy、memset的实现
- memcpy memcopy 的实现
- memcpy的实现
- 龙芯版 memcpy 的实现
- memcpy & strcmp的实现
- memcpy的实现
- memcpy的实现
- memcpy的实现
- memcpy函数的实现
- memmove、memcpy的实现
- memcpy的实现
- 汇编-memcpy的实现
- memcpy的实现
- 要想快,先慢下来
- 使用aireplay-ng时报错“mon0 is on channel ×, but the AP uses channel ×”
- Ubuntu中解决解压zip文件中文乱码问题
- Struts2源码试读1-filter
- 【奇偶剪枝】HDU 1010 Tempter of the Bone
- memcpy的自定义实现的源代码
- hdu oj 2544 最短路(最短路径)
- nyoj 107
- 键盘快捷键
- 使用BlockingQueue进行多线程间的异步通信
- Java 同步与锁
- 字典树
- 进程&线程&死锁
- JSP页面跳转的常见方式