用malloc分配动态二维数组
来源:互联网 发布:点餐平台源码 编辑:程序博客网 时间:2024/06/05 10:58
1. 动态数组的成员都可以用正常的数组下标 Array[i][j]
- #include <stdio.h>
- #include <stdlib.h>
- void main()
- {
- int nrows,ncolumns;
- int **Array;
- int i,j;
- printf("please input nrows&ncolumns:/n");
- scanf("%d%d",&nrows,&ncolumns);
- Array=(int **)malloc(nrows*sizeof(int *));
- for(i=0;i<nrows;i++)
- Array[i]=(int *)malloc(ncolumns*sizeof(int));
- for(i=0;i<nrows;i++)
- {
- for(j=0;j<ncolumns;j++)
- {
- Array[i][j]=1;
- printf("%d ",Array[i][j]); //动态数组的成员都可以用正常的数组下标 Array[i][j]
- }
- printf("/n");
- }
- free(Array);
- }
2. 让数组的内容连续, 但在后来重新分配列的时候会比较困难, 得使用一点指针算术:
- #include <stdio.h>
- #include <stdlib.h>
- void main()
- {
- int nrows,ncolumns;
- int **Array;
- int i,j;
- printf("please input nrows&ncolumns:/n");
- scanf("%d%d",&nrows,&ncolumns);
- Array=(int **)malloc(nrows*sizeof(int *));
- Array[0]=(int *)malloc(nrows*ncolumns*sizeof(int));
- for(i=1;i<nrows;i++)
- Array[i]=Array[0]+i*ncolumns;
- for(i=0;i<nrows;i++)
- {
- for(j=0;j<ncolumns;j++)
- {
- Array[i][j]=1;
- printf("%d ",Array[i][j]); //动态数组的成员都可以用正常的数组下标 arrayx[i][j]
- }
- printf("/n");
- }
- free(Array);
- }
3. 同一个单独的动态分配的一维数组来模拟二维数组:
- #include <stdio.h>
- #include <stdlib.h>
- void main()
- {
- int nrows,ncolumns;
- int *Array;
- int i,j;
- printf("please input nrows&ncolumns:/n");
- scanf("%d%d",&nrows,&ncolumns);
- Array=(int *)malloc(nrows*ncolumns*sizeof(int *));
- for(i=0;i<nrows;i++)
- {
- for(j=0;j<ncolumns;j++)
- {
- Array[i*nrows+j]=1;
- printf("%d ",Array[i*nrows+j]); //用 array3[i * ncolumns + j] 访问第 i, j 个成员
- }
- printf("/n");
- }
- free(Array);
- }
阅读全文
0 0
- 用malloc分配动态二维数组
- 用malloc分配动态二维数组
- malloc分配二维数组
- new/delete多维数组/malloc分配动态二维数组
- 用malloc函数申请动态二维数组
- malloc动态申请二维数组
- 二维数组动态申请 malloc
- 动态内存的分配,包括 new delete malloc realloc free,一维数组和二维数组
- new/malloc 分配二维数组存储空间
- 二维数组动态存储分配
- C语言用malloc函数申请二维动态数组
- C语言用malloc函数申请二维动态数组
- 二维数组、三维数组动态内存分配
- 用malloc动态分配二维数组
- 用malloc动态分配二维数组
- 用malloc动态分配二维数组
- 用malloc开辟二维数组
- 用C语言分配动态二维数组(结构体实现)
- 关键字之流程控制
- Spark性能优化指南——高级篇
- Eclipse和Mysql之查询语句
- Java8之lambda表达式详解
- 安卓控件2
- 用malloc分配动态二维数组
- 网络监控利器-Zabbix的简介
- Python的requests软件包详解
- 美团 Robust热更新使用图解
- C6678多核DSP开发——vlib应用之连通域标记
- Hive on Tez部署及验证测试
- mac终端操作mysql
- xheditor struts2 上传文件
- 二叉查找树(通过外排思想处理大数据)