内存移动:memmove原理模拟实现
来源:互联网 发布:禁止外资参与网络出版 编辑:程序博客网 时间:2024/06/14 10:51
【移动内存】 阅读下列程序说明和C代码,在下划线“__”处填入语句。
【程序说明】子程序Move是将地址为A开始的N个存储单元 移动到地址为B开始的N个存储单元中,对于两个区域重叠的情况也能正确处理。
【温馨提示】分为三种情况考虑,一种相等不处理,一种是顺序操作肯定不会重叠,最后一种…;后面两种需要调用Save函数,该函数已经编写完成。
#define MAX 100 /* 总共在100个数据中处理 */ #define N 10 /* 两个存储单元长度为10个单位 */ int *A, *B; void Save(int *a, int *b, int Step) { for (int i = 0; i < N; i++) { *b = *a; a += Step; b += Step; } } void Move() { int *a, *b, Step; a = A; b = B; if (a == b) { return; } else if (_____) { __________; __________; __________; } else { __________; } Save(a, b, Step);}int main(void){ int i, Array[MAX]; random(); /* 初始化随机数因子,random(int X)返回不小于0, 不大于X的随机整数 */ A = &Array[random(MAX - N)]; B = &Array[random(MAX - N)]; for (i = 0; i < N; i++) A[i] = i; Move(); return 0;}
【图解分析】
//TODO:1、Save函数功能分析2、三种情况分析
【分析结果】
if (a == b){ return;} else if ((a - b < 0) && (a - b > -N)) { a += N-1; b += N-1; Step = -1; } else { Step = 1; }
【总结】
//TODO:
阅读全文
0 0
- 内存移动:memmove原理模拟实现
- 动态内存管理:模拟实现memcpy,memmove
- 模拟实现内存操作函数memcpy、memmove
- 模拟实现memmove函数
- 模拟实现memmove
- 模拟实现 memmove
- 模拟实现memmove函数。
- 模拟实现memmove
- 模拟实现memmove函数
- 模拟实现memmove
- 模拟实现memcopy()/memmove()
- 模拟实现memmove函数
- 模拟实现memmove函数
- 【C语言】模拟实现memmove函数(考虑内存重叠)
- C语言:模拟实现memmove
- c语言模拟实现memmove
- 【C语言】模拟实现memmove
- 模拟实现memcpy/memmove/memset
- 指针和一维数组关系
- hive安装配置
- t.xml文件中的Activity属性android:name必须和工程src目录下的相关类名保持一致
- 用自己的数据完成“分类”
- 什么是MyBatis
- 内存移动:memmove原理模拟实现
- 决策树算法之ID3
- 数据结构——链表之逆序建立链表
- (84)温度单位的转换工具(方法的使用)
- Linux系统下用find命令查找最近修改过的文件
- JVM内存区域划分
- Amazon Dynamo架构分析(一)
- 年底阅读计划
- 列表生成器笔记(Python)