Уникальное имя для двумерного динамического массива в функции

Рейтинг: 0Ответов: 0Опубликовано: 26.02.2023

Всем привет, не могу решить задачу, которую сам придумал... Вызывается функция и выводится матрица. Задача вот какая: написать программу, которая спрашивает сколько строк и колонок в матрице, далее спрашивает сколько матриц. Потом я хочу складывать все матрицы (до этого я ещё не дошёл). Саму матрицу я создаю через функцию. В этой функции создаётся динамический массив, чтобы можно было в нём задавать количество строк и столбцов. После создания матрицы ( тобишь это массив с адресами ), функция повторяется и создаётся ещё матрица ( массив ). Но когда она создаётся, адреса не меняются и значения, которые были в первой матрице меняются, а их адреса нет. Тобишь я не могу обратиться к первой матрице. Вопрос: как можно это обыграть ? Единственная идея, которая пришла мне в голову - это менять имя массива, но я не знаю как это осуществить. Возможно есть другие решения ?введите сюда описание изображения

#include <iostream>
#include <ctime>

using namespace std;

int Foo1(int rows, int cols, int count) {
    int **arr = new int* [rows];

    for (int i = 0; i < rows; i++) {
        arr[i] = new int[cols];
    }

    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            arr[i][j] = rand() % 100;
        }
    }

    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            cout << arr[i][j] << '\t';
        }
        cout << endl;
    }

    int countstring = 10 * rows - 10;
    char c = '=';
    cout << string(countstring, c) << endl;

    --count;
    if (count == 0) {
        return 0;
    }

    return Foo1(rows,cols,count);
}


int main() {
    setlocale(LC_ALL, "ru");
    srand(time(NULL));
    int rows, cols, count;

    cout << "Введите количесвто строк в матрице: ";
    cin >> rows;
    cout << "Введите количество столбцов в матрице: ";
    cin >> cols;
    cout << "Введите количество матриц: ";
    cin >> count;

    Foo1(rows, cols, count);


}

Ответы

Ответов пока нет.