动态数组创建
来源:互联网 发布:windows phone开发 编辑:程序博客网 时间:2024/05/25 18:10
一般的数组创建的时候必须是常量,这就造成了一些问题
比如说,我想在程序执行的时候输入二维数组的第一维为4,第二维为5,或者其他的,如果直接在程序中定义了数组的大小,有的时候数组太大浪费空间,有的时候空间又不够,这个头疼的问题
创建动态数组就可以了
C++
创建动态二维数组:
int **a = new int *[m];for (int i = 0; i < m; i++) a[i] = new int[n];
释放二维数组空间
for(int i=0;i<m;i++) delete[] a[i];delete [] a;
举个栗子:
#include<iostream> using namespace std; int main() { cout << "请输入矩阵行列数字m n:"<< endl; int m, n; cin >> m >> n; int **a = new int *[m]; for (int i = 0; i < m; i++) a[i] = new int[n]; cout << "请按行优先顺序输入数组元素:" << endl; for (int i = 0; i < m; i++) for (int j = 0; j < n; j++) cin >> a[i][j]; cout << "输出:" << endl; for (int i = 0; i < m; i++) { cout << endl; for (int j = 0; j < n; j++) cout << a[i][j]<<" "; } for(int i=0;i<m;i++) delete[] a[i]; delete [] a; return 0; }
C
创建动态二维数组:
int **p = (int**)malloc(m*sizeof(int*));for (i = 0; i < m; i++ ) p[i] = (int*) malloc(n*sizeof(int));
释放二维数组空间
for(i = 0;i < m; i++) free(p[i]);free(p);
举个栗子:
#include <stdio.h>#include <stdlib.h>int main(){ int i, j; int m, n; printf("请输入m n:\n"); scanf("%d%d", &m, &n); int **p = (int**)malloc(m*sizeof(int*)); for (i = 0; i < m; i++ ) p[i] = (int*) malloc(n*sizeof(int)); printf("请输入%d个整数:\n", m*n); for(i = 0; i < m; i++) for(j = 0; j < n; j++) scanf("%d", &p[i][j]); for(i = 0; i < m; i++){ for(j = 0; j < n; j++) printf("%d ",p[i][j]); printf("\n"); } for(i = 0;i < m; i++) free(p[i]); free(p); return 0;}
阅读全文
0 0
- 动态创建数组
- C#创建动态数组
- 动态创建数组
- 创建动态数组
- 动态创建二维数组
- 动态创建数组
- C#动态创建数组
- 动态创建二维数组
- 动态创建多维数组
- 动态创建二维数组
- 动态创建数组
- 创建动态数组
- java动态创建数组
- 创建动态数组
- C#创建动态数组
- 动态创建整形数组
- 动态创建数组
- 动态创建二维数组
- 常见对象_StringBuffer的截取功能
- Pentaho PDI Job通过Gmail发邮件的设定
- 金融科技&大数据产品推荐:荣之联·风报—人工智能企业情报分析系统
- hadoop 学习笔记 一
- 【转】HashSet 和 HashMap 的比较
- 动态数组创建
- 智能指针
- 链表中环的入口结点
- MySQL索引背后的数据结构及算法原理
- js中的indexOf使用方法
- 自建因子归总
- 创建数据表
- Javascript中call和apply的区别
- 欢迎使用CSDN-markdown编辑器