模拟实现C库的memcpy和memmove。
来源:互联网 发布:贵州省网络测评中心 编辑:程序博客网 时间:2024/06/16 11:36
memcpy
c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。
函数原型
void* memcpy(void* dest,const void *src, size_t n);
void* my_memcpy(void* dest, const void* src, size_t n){ assert(dest&&src); char* pdest = (char*) dest; const char* psrc = (const char*)src; while (n--) { *pdest++ = *psrc++; } return dest;}
memmove
memmove用于从src拷贝count个字节到dest,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中。但复制后src内容会被更改。但是当目标区域与源区域没有重叠则和memcpy函
功能相同。
void* my_memmove(void* dest, const void* src, size_t count)
{
assert(dest);
assert(src);
char* pdest = (char*)dest;
const char* psrc = (const char*) src;
if (pdest <= psrc || psrc + count <= pdest)//正常情况下,从前往后拷贝
{
while (count--)
*pdest++ = *psrc++;
}
else
{
while (count--)
*(pdest + count) = *(psrc + count);
}
return dest;
}
阅读全文
0 0
- 模拟实现C库的memcpy和memmove。
- 模拟实现C库的memmove和memcpy
- C语言模拟实现memcpy和memmove
- memcpy和memmove的模拟实现
- memcpy和memmove的模拟实现
- 模拟实现C库函数:strchr、strcmp、strstr、memcpy和memmove
- C语言 string及memcpy,memmove函数的模拟实现
- C语言模拟实现memcpy,memmove函数
- 【c语言】模拟实现memcpy()、memmove()函数
- C语言模拟实现memcpy、memmove、memset
- memcpy函数和memmove函数的模拟实现与区别
- memcpy和memmove的实现
- 模拟实现memcpy和memmove函数
- 模拟实现memcpy和memmove函数
- C语言中memcpy、memset和memmove的实现
- memcpy 和 memmove 实现
- C 标准库 memcpy and memmove 函数的实现
- 模拟实现memcpy/memmove/memset
- JZOJ 5244. 【NOIP2017模拟8.8A组】Daydreamin ' (daydream)
- Android uiautomator
- SQL 创建计算字段
- 详解语音处理检测技术中的热点——端点检测、降噪和压缩
- java 类加载顺序
- 模拟实现C库的memcpy和memmove。
- 免费馅饼--DP
- 剑指Offer--丑数
- Android——UI篇:关于Fragment的构造参数打包release版本报错的问题
- 关于Android Studio集成Hbuilder开发个推项目不能获取Clientid的问题说明
- 剑指Offer:机器人的运动范围
- 十五分钟了解朱利亚集
- 微信公众号--->java
- 一句话告诉你:java自动装箱 == 判定结果