#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;
}
 

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐