使用memcpy移动数据位置的思考

博客讨论了使用memcpy函数在Linux环境下移动内存数据的问题,指出不同Linux发行版memcpy的实现可能导致数据移动错误,特别是在数据向后移动时。文章通过实例展示了在CentOS和Ubuntu上遇到的问题,并提醒开发者避免依赖memcpy进行内存区域移动,建议采用临时变量等替代方案确保数据完整性。
摘要由CSDN通过智能技术生成

使用memcpy将一段数据整体向前移动没有问题,但是整体向后移动会造成数据拷贝错误

【在centos系统中这种方法没有发现问题,但是在后续的开发中,在将代码移植到ubuntu系统时,发现向前移动也会有问题,不同linux版本该函数的实现方法不同;所以建议不要使用这种方法移动内存区,可以使用临时变量或其它方法实现数据移动】

数据向前移动图示:
这里写图片描述

数据向后移动图示:
这里写图片描述

测试程序:

#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

void my_memcpy(int *dst, const int *src, size_t len); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值