网站开发开题报告计划进度安排,网站建设财务上做什么费用,推广网站2024,手机版怎么做微电影网站文章目录 每日一言memcpy介绍模拟实现 memmove介绍模拟实现思路代码 结语 每日一言
If you want to lift yourself up, lift up someone else. 如果你想振奋自己#xff0c; 先振奋周遭的人。
memcpy
介绍
函数原型#xff1a;
void *memcpy(void *dest, const void *sr… 文章目录 每日一言memcpy介绍模拟实现 memmove介绍模拟实现思路代码 结语 每日一言
If you want to lift yourself up, lift up someone else. 如果你想振奋自己 先振奋周遭的人。
memcpy
介绍
函数原型
void *memcpy(void *dest, const void *src, size_t n);其中dest是指向目标内存地址的指针src是指向源内存地址的指针n是要复制的字节数。 memcpy函数的工作原理是直接从源内存地址复制指定数量的字节到目标内存地址可以高效地进行大量数据的复制操作并且在操作过程中不会改变目标内存地址中的数据类型。 在使用memcpy函数时需要注意源内存地址和目标内存地址之间不能有重叠否则会产生未定义的行为。 模拟实现
void* my_memcpy(void*dest,const void*arr,size_t num)
{for (int i 0; i num; i){*((char*)dest i) *((char*)arr i);}return dest;
}memmove
介绍
函数原型
void *memmove(void *dest, const void *src, size_t n);其中dest 表示目标内存地址src 表示源内存地址n 表示要移动的数据字节数。 memmove 函数会将 src 指向的内存中的数据复制到 dest 指向的内存中共复制 n 个字节。在复制过程中如果 src 与 dest 所指内存区域有重叠memmove 函数会正确处理数据避免出现数据损坏的情况。
模拟实现
思路
判断源地址和目标地址的大小。根据复制方向选择正确的复制方式。 如果源地址小于目标地址则从后往前拷贝。 如果源地址大于目标地址则从前往后拷贝。返回目标内存区域的起始地址。
代码
void* my_memmove(void* dest, const void* arr, size_t num)
{if (destarr){for (int i 0; i num; i){*((char*)dest i) *((char*)arr i);}}else{while (num--){*((char*)dest num) *((char*)arr num);}}return dest;
}结语
请给自己些耐心一口吃不成胖子。 山外青山楼外楼莫把百尺当尽头。 想成为大佬那就保持空杯心态加油努力吧 都看到这里啦真棒(*^▽^*)
可以给作者一个免费的赞赞吗这将会鼓励我继续创作谢谢大家
编程小白写作如有纰漏或错误欢迎指正