C语言创建数组的几个常用方法
2016-07-07 20:52
295 查看
从键盘输入若干数据到数组中,可选用的方法:
预估最大数据个数,按此数值定义数组空间,完成数据输入
#define MAX_NUM 1000
int a[MAX_NUM]; 这种方法定义数组,方便,安全。缺陷是数组空间大小受系统限制,数据太多了,就不能这样定义了。
运行时,确定输入数据个数,采用指针动态定义数组,或C99提供的动态数组的方法实现
int *p;
int n; printf ("input n: "); scanf("%d", &n); //输入数据个数
(1)p=(int *)malloc(n*sizeof(int) ); //动态分配空间 不用了记得要释放free(p)
或
(2)int pa
; //C99支持的动态数组,按n值动态定义数组
还可以采用指针动态扩充数组方法:先分配一定的大小,当数组不够用时,再重新分配空间。
#define INIT_LEN 100 预分配空间
#define INCE_LEN 10 每次扩充空间
int *p=(int *) malloc(INIT_LEN *sizeof(int) );
int length=INIT_LEN ;
不足时, length+=INCE_LEN ; p=(int *)realloc( p, length) ; //扩充空间
预估最大数据个数,按此数值定义数组空间,完成数据输入
#define MAX_NUM 1000
int a[MAX_NUM]; 这种方法定义数组,方便,安全。缺陷是数组空间大小受系统限制,数据太多了,就不能这样定义了。
运行时,确定输入数据个数,采用指针动态定义数组,或C99提供的动态数组的方法实现
int *p;
int n; printf ("input n: "); scanf("%d", &n); //输入数据个数
(1)p=(int *)malloc(n*sizeof(int) ); //动态分配空间 不用了记得要释放free(p)
或
(2)int pa
; //C99支持的动态数组,按n值动态定义数组
还可以采用指针动态扩充数组方法:先分配一定的大小,当数组不够用时,再重新分配空间。
#define INIT_LEN 100 预分配空间
#define INCE_LEN 10 每次扩充空间
int *p=(int *) malloc(INIT_LEN *sizeof(int) );
int length=INIT_LEN ;
不足时, length+=INCE_LEN ; p=(int *)realloc( p, length) ; //扩充空间
相关文章推荐
- C语言嵌入式系统编程修炼之三:内存操作
- VC++ 注册码
- 参数传递
- C语言之父丹尼斯·里奇:乔布斯脚下的巨人肩膀
- STL的多线程安全问题
- 【排序算法】-堆排序
- 【NOIP2000】方格取数
- 大话设计模式c++实现--原型模式
- 浅谈 C++ 中的 new/delete 和 new[]/delete[]
- malloc/free new/delete 区分
- 在cmd命令行下编译运行C/C++源文件
- 【基础算法】嵌套矩形
- Eclipse下报错 An internal error occurred during: "C/C++ Indexer". java.lang.NullPointerException
- 【排序算法】-归并排序
- VS2015 使用微软自带的单元测试框架测试本地C++代码的注意事项
- 残缺棋盘问题
- 【排序算法】-插入排序
- 归并排序(C语言实现)
- C语言重写strncpy()、strcmp()、strchr()、atoi()函数
- x64下vs2013 C++遍历目录下所有文件使用_findnext()调试时中断