C++动态申请二维数组
2015-04-09 12:19
309 查看
/*** 申请1维双精度实数数组 ***/ double *alloc_1d_dbl(int n) { double *new1; new1 = (double *) malloc ((unsigned) (n * sizeof (double))); if (new1 == NULL) { printf("ALLOC_1D_DBL: Couldn't allocate array of doubles\n"); return (NULL); } return (new1); } /*** 申请2维双精度实数数组 ***/ double **alloc_2d_dbl(int m, int n) { int i; double **new1; new1 = (double **) malloc ((unsigned) (m * sizeof (double *))); if (new1 == NULL) { // printf("ALLOC_2D_DBL: Couldn't allocate array of dbl ptrs\n"); return (NULL); } for (i = 0; i < m; i++) { new1[i] = alloc_1d_dbl(n); } return (new1); }
void printMatrix(int **matrix,int row,int col) { for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { cout << matrix[i][j] << " "; } cout << endl; free(matrix[i]); } free(matrix); }
第二种使用new的方法申请二维数组:
#include <iostream> using namespace std; double* alloc_1d(int n) { double *new1; new1 = new double ; return new1; } double** alloc_2d(int m, int n){ double** new1; new1 = new double*[m]; for (int i = 0; i < m; i++) { new1[i] = alloc_1d(n); } return new1; } void input(double **matrix, int m, int n){ for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { cin >> matrix[i][j]; } } } void printMatrix(double **matrix, int row, int col) { for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { cout << matrix[i][j] << " "; } cout << endl; delete[]matrix[i]; } delete[]matrix; } void main() { int row, col; double **matrix; cout << "输入row col:" << endl; cin >> row >> col; matrix = alloc_2d(row, col); input(matrix, row, col); printMatrix(matrix, row, col); }
相关文章推荐
- C++new delete 动态申请二维数组
- c++ 动态申请结构体二维数组
- c++ 动态申请二维数组
- C++动态申请二维数组
- C++中动态申请二维数组并释放方法
- C++中动态申请与释放二维数组
- 【拾遗】C++申请与销毁动态二维数组
- c++二维数组的动态申请
- C\C++动态申请内存用于存放二维数组
- C++动态申请二维数组
- C++中动态申请二维数组并释放方法
- c/c++中动态申请二维数组的方式
- C++中动态申请二维数组
- C++动态申请二维数组的理解
- C++中动态申请二维数组并释放方法
- C++ vector CArray 动态申请二维数组
- C++ 中动态二维数组的申请
- C++动态申请二维数组
- C++ 动态申请二维数组
- C++ 动态申请列数行数不确定的变长二维数组(主要是行数不确定)