C实现不定长数组的示例
更新时间:2020年4月25日 17:27 点击:2090
写程序的时候经常要定义这样一个数组,要前面程序运行后才能知道数组的大小,然而C语言不支持直接定义不定长数组的定义,但是我们可以通过动态数组实现一个不定长度的数组。
一维数组:
#include<stdio.h> #include<stdlib.h>//要使用malloc是要包含此头文件 #include <memory.h>//要使用memset是要包含此头文件 int main() { int m; scanf("%d", &m);//scanf只是遇到回车符的时候结束,并没有把回车符输入,因此输入流中还有一个回车符 getchar();//把输入流中的回车符读走 int *p; p = (int*)malloc(m*(sizeof(int)));//动态申请内存 memset(p, 0, m);//初始化,每个元素都为零 int i; for (i=0;i<m; i++)//数组赋值 { p[i] = i; } for (i = 0; i <m; i++)//打印数组 { printf("%d,", p[i]); } free(p);//释放内存 getchar();//让程序停顿,好看到输出 return 0; }
二维不定长数组
#include <stdio.h> #include <stdlib.h>//要使用malloc是要包含此头文件 #include <memory.h>//要使用memset是要包含此头文件 int main() { int m, n; scanf("%d%d", &m,&n);//scanf只是遇到回车符的时候结束,并没有把回车符输入,因此输入流中还有一个回车符 getchar();//把输入流中的回车符读走 int **p; p = (int**)malloc(m*(sizeof(int*)));//二级指针所在地址申请内存 int i, j; for (i = 0; i<m; i++) p[i] = (int*)malloc(sizeof(int)*n);//一级指针所在地址申请内存 for (i = 0; i < m; i++) for (j = 0; j < n; j++) p[i][j] = i + j; for (i = 0; i < m; i++) { for (j = 0; j < n; j++) { printf("%d %p ", p[i][j], &p[i][j]); //输出每个元素及地址,每行的列与列之间的地址时连续的,行与行之间的地址不连续 } printf("\n"); } for (i = 0; i < m; i++) free(p[i]); free(p); getchar();//让程序停顿,好看到输出 return 0; }
以上这篇C实现不定长数组的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持猪先飞。
上一篇: C语言实现链队列代码
下一篇: C语言实现链队列
相关文章
- 在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
- 这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- 这篇文章主要介绍了c++中system("pause")的作用和含义,非常不错,具有参考借鉴价值,需要的朋友参考下吧...2020-04-25
- 本文章提供在量的数据中级操作实例有如对键名比较计算数组的差集 计算差集 给指定数组中插入一个元素 反转数组 交集赋值新的数组实例。 //定义回调函数 funct...2016-11-25
- 这篇文章主要介绍了C#二维数组基本用法,以实例形式分析了C#中二维数组的定义、初始化、遍历及打印等用法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: <?php$uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址// 参数数组$data = array ( 'name' => 'tanteng'// 'passwor...2015-11-24
- Array数组在C#中同样是最基本的数据结构,下面为大家C#数组的常用操作方法小结,皆为细小的代码段,欢迎收看收藏...2020-06-25
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
这篇文章主要介绍了基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍 的相关资料,需要的朋友可以参考下...2016-05-14- 这篇文章主要介绍了C# 16 进制字符串转 int的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 下面小编就为大家带来一篇C# 拷贝数组的几种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
InterlliJ IDEA2020新建java web项目找不到Static Web的解决
这篇文章主要介绍了InterlliJ IDEA2020新建java web项目找不到Static Web的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-09-02- 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。 遇到这个...2014-06-07
- 这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了C#类中static变量用法,实例分析了static变量使用技巧与相关注意事项,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 这篇文章主要介绍了C#读取文件所有行到数组的方法,涉及C#针对文件及数组的相关操作技巧,需要的朋友可以参考下...2020-06-25
- 如何将下面的二维数组转为一维数组。复制代码 代码如下:$msg = array( array( 'id'=>'45', 'name'=>'jack' ), array( 'id'=>'34', 'name'=>'mary' ), array( 'id...2014-05-31
- 这篇文章主要介绍了C#判断一个字符串是否是数字或者含有某个数字的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要给大家介绍C# winform快捷键设置技巧,涉及到C winform快捷键相关知识,对C winform知识感兴趣的朋友可以参考下本篇文章...2020-06-25
- 这篇文章主要介绍了基于Ionic3实现选项卡切换并重新加载echarts,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-24