C++动态申请二维数组
#include <iostream>
using namespace std;
int **get_2_dimensional_array_memory(int rows, int cols)
{
int level_2_mem_alloc_flag = 0;
int i = 0;
int i_count = 0;
int **p = new int*[rows];
if (p == NULL) {
cout << "Mem alloc fail!" << endl;
return NULL;
}
for (; i <cols; i++) {
p[i] = new int[cols];
if (p[i] == NULL) {
i_count = i;
level_2_mem_alloc_flag = 1;
cout << "Mem p[" << i << "] alloc fail!" << endl;
break;
}
}
if (level_2_mem_alloc_flag == 1) {
if (i_count != 0) {
for (i = 0; i < i_count; i++) {
delete[] p[i];
p[i] = NULL;
}
}
delete[] p;
p = NULL;
return NULL;
}
return p;
}
int main()
{
int **matrix = NULL;
int m = 0, n = 0;
int i = 0, j = 0;
cin >> m >> n;
matrix = get_2_dimensional_array_memory(m, n);
if (matrix == NULL) {
cout << "Mem alloc fail!" << endl;
}
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
matrix[i][j] = i * 4 +j * 5;
}
}
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
cout << matrix[i][j];
if (j == n - 1) {
cout << endl;
} else {
cout << ", ";
}
}
}
for (i = 0; i < m; i++) {
delete[] matrix[i];
}
delete[] matrix;
return 0;
}
更多推荐


所有评论(0)