Как вернуть двумерный массив?

В C++ двумерные массивы обычно объявляются как массив массивов или как одномерный массив, но используется формула для преобразования двумерных индексов в одномерный индекс.

1. Массив массивов:

int main() {
    const int rows = 3;
    const int cols = 3;
    
    int matrix[rows][cols] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    
    return 0;
}

2. Одномерный массив:

int main() {
    const int rows = 3;
    const int cols = 3;
    
    int matrix[rows * cols] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    
    return 0;
}

Чтобы вернуть двумерный массив из функции, вы можете использовать указатель на массив или возвращать указатель на начало одномерного массива. Например:

int (*returnMatrix())[cols] {
    static int matrix[rows][cols] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    return matrix;
}

int main() {
    const int rows = 3;
    const int cols = 3;
    
    int (*result)[cols] = returnMatrix();
    
    // Доступ к элементам:
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            std::cout << result[i][j] << " ";
        }
        std::cout << std::endl;
    }
    
    return 0;
}

В этом примере функция returnMatrix() возвращает указатель на массив трех элементов, где каждый элемент является массивом из трех элементов. В функции main() возвращенный двумерный массив используется для вывода его элементов на экран.

Надеюсь, что эта информация поможет вам вернуть двумерный массив в C++!