动态储存结构体数组
2015-08-21 23:54
288 查看
在实际的编程中,数据的储存是常常遇到的,数组作为最简单实用的数据结构,常常被使用,而在c语言中数组是静态的,不允许静态的建立数组,而在实际应用中,如果固定数组的大小,在不知道输入数据的数量时,往往会造成数组定义过大,产生浪费;或是数组定义过小,不足够储存数据的问题。
除此之外,结构体能储存大量的信息且方便使用,那么可以将二者结合起来,通过动态的为结构体分配内存,来达到一个不限定大小的结构体数组用于存放数据。
实现方法如下:
通过这个简单的办法,就能较为方便的处理我们需要存储的数据,这样的数组借助了链表的想法,但是在调用中应该会比链表方便一点。
除此之外,结构体能储存大量的信息且方便使用,那么可以将二者结合起来,通过动态的为结构体分配内存,来达到一个不限定大小的结构体数组用于存放数据。
实现方法如下:
[code]#include <stdio.h> #include <malloc.h> #include <stdlib.h> #define LEN sizeof(struct Matrix) struct Matrix { int serial; int row; int coloum; }; main() { int len, i; struct Matrix *pArr; printf("请输入数组的元素个数:\n"); scanf_s("%d", &len); pArr = (struct Matrix *)malloc(len*LEN);//为结构体分配存储空间 printf("为数组赋值:\n"); for (i = 0; i<len; i++) { pArr[i].serial = i + 1; printf("第%d个元素:", pArr[i].serial); scanf_s("%d %d", &pArr[i].row, &pArr[i].coloum); } printf("数组输出:\n"); for (i = 0; i<len; i++) { printf("%4d%4d%4d\n", pArr[i].serial, pArr[i].row, pArr[i].coloum); } system("pause"); return 0; }
通过这个简单的办法,就能较为方便的处理我们需要存储的数据,这样的数组借助了链表的想法,但是在调用中应该会比链表方便一点。
相关文章推荐
- Linux四种进程通信机制
- UVALive - 3887 Slim Span(枚举+二分)
- Android:对话框(12种:警告对话框&进度条对话框&日期对话框&时间对话框)
- MongoDB学习五--MongoDB修改数据文档
- Data transfer from GPIO port to RAM buffer using DMA upon receiving a trigger signal on the timer capture input channel.
- 黑马程序员-JAVA基础之常见API
- python笔记 2
- 软工视频总结Part One
- springmvc学习笔记(五)开启注解
- 零基础学python-7.3 字符串的一般使用
- Xposed源码剖析——Xposed初始化
- Maximal Square leetcode
- 零基础学python-7.3 字符串的一般使用
- 使用套接字的四个步骤
- HDU - 4126 Genghis Khan the Conqueror(树形DP + 最小生成树)
- yii2 数据库查询笔记
- SQL语句练习
- 以phoneGap作为承载容器是ios会上下滑动
- linux命令- 挂载命令 mount
- 关于Java关键字synchronized——单例模式的思考