有关内存覆盖
来源:互联网 发布:数据挖掘需要什么基础 编辑:程序博客网 时间:2024/06/05 05:31
例题:有n个整数,使前面各数顺序向后移动m个位置,最后m个数变成最前面的m个数。写一个函数实现以上功能,在主函数中输入n个整数和输出调整后的n个数。
如下图:
#include<stdio.h>#include<stdlib.h>void Move(int *arr,int n,int m) { if(arr==NULL || n<=0 || m<0 || n<m) //判断问题不成立的条件 { return ; } int *p = (int *)malloc(m*sizeof(int)); //申请动态数组 int i; for(i=0;i<m;i++) { p[i] = arr[n-m+i]; //将m个数移动到新申请的动态数组中 } for(i=n-m-1;i>=0;i--) { arr[i+m] = arr[i]; //将原来的数组往后移动m个位置 } for(i=0;i<m;i++) { arr[i] = p[i]; //将动态数组中m个数移动到原来数组中的最前面 } free(p); //释放内存 否则内存泄漏}void Show(int *arr,int len){ for(int i=0;i<len;i++) { printf("%d ",arr[i]); } printf("\n");}int main(){ Show(arr,sizeof(arr)/sizeof(arr[0])); int arr[10] = {1,2,3,4,5,6,7,8,9,10}; Move(arr,sizeof(arr)/sizeof(arr[0]),3); Show(arr,sizeof(arr)/sizeof(arr[0])); return 0;}
内存重叠问题:
#include<stdio.h>#include<stdlib.h>void Move2(int *des,int *src,int len){ for(int i=0;i<len;i++) { des[i] = src[i]; }}void Show(int *arr,int len){for(int i=0;i<len;i++){printf("%d ",arr[i]);}printf("\n");}int main(){//1从一个数组拷贝到另一个数组int arr1[10] = {1,2,3,4,5,6,7,8,9,10};int brr[10];Move2(brr,arr1,10);Show(arr1,sizeof(arr1)/sizeof(arr1[0]));Show(brr,sizeof(brr)/sizeof(brr[0]));//内存重叠int arr2[10] = {1,2,3,4,5,6,7,8,9,10};Move2(&arr2[0],&arr2[3],7);Show(arr2,sizeof(arr2)/sizeof(arr2[0]));int arr3[10] = {1,2,3,4,5,6,7,8,9,10};Move2(&arr3[3],&arr3[0],7);Show(arr3,sizeof(arr3)/sizeof(arr3[0]));return 0;}
阅读全文
0 0
- 有关内存覆盖
- 有关Canvas图像覆盖问题
- 内存覆盖和内存交换
- 内存覆盖与内存交换
- 指针内存覆盖问题
- memcpy 内存覆盖问题
- 有关SQLServer内存问题
- 有关内存的思考题
- 有关内存的思考题
- 有关SQLServer内存问题
- 有关内存的思考题
- 有关内存泄露
- 有关内存的问题
- Java有关内存问题
- 有关C#内存
- 有关Android 内存优化
- 有关内存的思考题
- 有关内存的思考题
- BZOJ2038(莫队算法)
- hadoop源码编译方法,以及编译问题总结
- ## com.MySQL.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establ
- Apache Storm 1.1.0 中文文档 | ApacheCN
- Flask零基础到项目实战(四)SQLAlchemy数据库(三)
- 有关内存覆盖
- Hibernate(1)——简介
- MyBatis出错:Error instantiating class com.huida.test.User with invalid types () or values ().
- Python 上下文管理器和else块
- SoapUI模拟soap请求连接.net服务器接口
- 数据库的索引
- SQL函数
- python tensorflow学习笔记(二)算数
- 查询oracle数据库的版本和字符编码