实现两个函数,分别完成数组元素的插入和删除操作
2015-07-05 18:21
381 查看
注意问题:
1.定义一个数组,开辟一段内存空间,这段内存空间并不会像被围墙围住一样被封死,合理地利用这个数组,需要程序员自己控制。只定义了这段空间,只有这段空间内的数据对于你当前的程序是合理的,越界的话就不知道你访问到哪里去了,它可能属于机器上任何一个运行着的进程,因为机器上的进程使用的都是这一条内存。如果你修改了你越界访问到的数据,可能会造成未知的错误。
2可以通过sizeof()获得某个类型的大小,但是程序运行时不会去检查下标是否越界。这样的检查是需要耗费资源的,理想的情况下,这样做对于程序运行也没有意义。C/C++没有这样做这样的检查,C# 、java 都是有这样的检查的#include<stdio.h> void insert(int *a,int n,int p,int x) { int i; for(i = n;i > p;i--) { *(a+i)=*(a+i-1); } *(a+p) = x; } void delect(int *a,int n,int p) { int i; for(i = p; i < n;i++) { *(a+i) = *(a+i+1); } *(a+i)='\0'; } int main() { int a[10]={1,2,3,4,5};//注意定义数组长度!否则插入数据会产生越界,产生异常 int i; insert(a,5,3,1); for(i = 0;*(a+i)!='\0';i++) { printf("%d ",*(a+i)); } printf("\n"); delect(a,6,5); for(i = 0;*(a+i)!='\0';i++) { printf("%d ",*(a+i)); } printf("\n"); return 0; }
相关文章推荐
- 【LeetCode】Majority Element II
- 解决Connection to http://192.168.1.* refused
- Ardunio_Case_2_breadboard_blink
- eclipse怎么样新建web项目,eclipse新建web项目
- linux mkdir命令
- C++基于该模型模板包括节目外实例
- webbench
- U4初步使用整理(四)切换相机
- 大数据量的存储分表常见算法
- 转!!java泛型概念(泛型类,接口,方法)
- Rendering Path
- STL的一些总结
- 欢迎使用CSDN-markdown编辑器
- Caused by: android.os.NetworkOnMainThreadException
- Metaspace
- 1031. 查验身份证(15)
- Redis快速入门
- Cocos2dx 内存优化-第一天
- linux系统下的jdk安装,环境变量配置以及tomcat的相关问题
- 一个故事讲清楚NIO