动态生成二维数组
来源:互联网 发布:js中设计模式有什么 编辑:程序博客网 时间:2024/06/02 23:58
#include<stdlib.h>
#include<unistd.h>
#include<stdio.h>
#define MSGSIZE 16
int main(){
int **arg;
int i,j;
arg=(int**)malloc(MSGSIZE*sizeof(int*));
for(i=0;i<MSGSIZE;i++){
*(arg+i)=(int*)malloc(MSGSIZE*sizeof(int));
for(j=0;j<MSGSIZE;j++)
arg[i][j]=j;
}
for(i=0;i<MSGSIZE;i++){
for(j=0;j<MSGSIZE;j++)
printf("%d ", arg[i][j]);
}
return 0;
}
有时根据题意需得根据输入的二维数来动态的创建二维数组,那么此时就不能想以前一样直接定义多少行多少列了。因为不知道行列多少,假如设定太大浪费空间,申请太小完成不了程序的数据存储。因此需要合理的开辟二维空间。
以下的两种方法都可以建立动态的二维空间数组。
方法一:
int i,j;
int r,c;
int **a; //创建二维指针来指向数组
scanf("%d%d",&r,&c);
a = (int **) malloc(sizeof(int *) * r);//注意申请的指针格式
for (j=0;j<r;j++){
a[j] = (int *) malloc(sizeof(int) * c);
……
……
}
释放为:
for (j=0;j<r;j++)
free(a[j]);//先释放一维指针
free(a);//最后释放我二维指针
方法二:
建立链表来存放二维数组。
typedef struct arr
{
int *array;
}arr;
main()
{
arr *array1;
int rowx,rowy;
int i,j,k=0;
scanf("%d %d",&rowx,&rowy);
array1=(arr *)malloc(sizeof(arr)*rowx);//创建链表数组
for(i=0;i<rowx;i++)
//再在每一个链表中创建一维数组,这样整体就构成二维数组
array1[i].array=(int *)malloc(sizeof(int)*rowy);
……
……
释放同上:
for (j=0;j<rowx;j++)
free(array1[j].array);
free(array);
}
以下的两种方法都可以建立动态的二维空间数组。
方法一:
int i,j;
int r,c;
int **a; //创建二维指针来指向数组
scanf("%d%d",&r,&c);
a = (int **) malloc(sizeof(int *) * r);//注意申请的指针格式
for (j=0;j<r;j++){
a[j] = (int *) malloc(sizeof(int) * c);
……
……
}
释放为:
for (j=0;j<r;j++)
free(a[j]);//先释放一维指针
free(a);//最后释放我二维指针
方法二:
建立链表来存放二维数组。
typedef struct arr
{
int *array;
}arr;
main()
{
arr *array1;
int rowx,rowy;
int i,j,k=0;
scanf("%d %d",&rowx,&rowy);
array1=(arr *)malloc(sizeof(arr)*rowx);//创建链表数组
for(i=0;i<rowx;i++)
//再在每一个链表中创建一维数组,这样整体就构成二维数组
array1[i].array=(int *)malloc(sizeof(int)*rowy);
……
……
释放同上:
for (j=0;j<rowx;j++)
free(array1[j].array);
free(array);
}
http://blog.163.com/kevinlee_2010/
- 动态生成二维数组
- 动态生成二维数组
- 生成动态二维数组!!
- 动态生成二维数组
- 动态生成二维数组
- 动态生成二维数组...
- 动态生成二维数组
- 动态生成二维数组
- 动态生成一个二维数组
- C++动态生成二维数组
- 如何用宏生成动态二维数组
- C语言动态生成二维数组
- C中动态二维数组的生成
- C++动态生成一维数组和二维数组实例
- 二维数组动态生成与释放(c/c++)
- android端获取网络json格式动态生成二维数组
- 二维数组生成XML
- 生成随机二维数组
- 浅说数学在算法中的重要性
- 解决Button在ImageView上不能点击
- 支持视音频和图片无线传屏以及屏幕镜像的Airplay的前世今生
- android多张图片翻转和倒影效果
- TX锁模式为4的情况模拟及探讨(三、进一步了解TX锁(未看))
- 动态生成二维数组
- RmNet,CDC-ECM 区别
- chromium shouldOverrideUrlLoading(HandleUrl)回调
- Oracle 分析及动态采样
- S3C6410的SPI控制器
- windows上搭建erlang的intellij idea开发环境
- arm gcc交叉编译工具链建立
- lr 动态sessionId处理引发的问题
- 回忆大学,随笔