Как вернуть двумерный массив в с++? Как можно вернуть такой массив?class Matrix public int i,j int returnMatrix(int col,int row) int matrix[col][row] for(i=0;i matrix[i][j]=i for(j=0;j
Возвращение двумерного массива в C++ несколько сложнее, чем простого одномерного массива, поскольку нельзя возвращать массивы напрямую из функций. Однако есть несколько способов обойти это ограничение. Один из них - использовать возвращение указателя на массив.
Вот как можно изменить ваш класс Matrix, чтобы вернуть двумерный массив:
#include <iostream> class Matrix public int** returnMatrix(int col, int row) int** matrix = new int*[row] for(int i=0;i<row;i++) matrix[i] = new int[col] for(int j=0;j<col;j++) matrix[i][j] = j; // инициализация элементов массив
return matrix
void deleteMatrix(int** matrix, int row) for(int i=0;i<row;i++) delete[] matrix[i]
delete[] matrix
} int main() Matrix m int row = 3 int col = 4 int** result = m.returnMatrix(col, row) for(int i=0; i<row; i++) for(int j=0; j<col; j++) std::cout << result[i][j] << " "
std::cout << std::endl
m.deleteMatrix(result, row) return 0 }
В данном примере используется динамическое выделение памяти для двумерного массива, и возвращается указатель на указатель. Это позволяет получить доступ к массиву в другой функции или части кода. Не забудьте освободить память с помощью функции deleteMatrix, чтобы избежать утечек памяти.
Возвращение двумерного массива в C++ несколько сложнее, чем простого одномерного массива, поскольку нельзя возвращать массивы напрямую из функций. Однако есть несколько способов обойти это ограничение. Один из них - использовать возвращение указателя на массив.
Вот как можно изменить ваш класс Matrix, чтобы вернуть двумерный массив:
#include <iostream>class Matrix
public
int** returnMatrix(int col, int row)
int** matrix = new int*[row]
for(int i=0;i<row;i++)
matrix[i] = new int[col]
for(int j=0;j<col;j++)
matrix[i][j] = j; // инициализация элементов массив
return matrix
void deleteMatrix(int** matrix, int row)
for(int i=0;i<row;i++)
delete[] matrix[i]
delete[] matrix
}
int main()
Matrix m
int row = 3
int col = 4
int** result = m.returnMatrix(col, row)
for(int i=0; i<row; i++)
for(int j=0; j<col; j++)
std::cout << result[i][j] << " "
std::cout << std::endl
m.deleteMatrix(result, row)
return 0
}
В данном примере используется динамическое выделение памяти для двумерного массива, и возвращается указатель на указатель. Это позволяет получить доступ к массиву в другой функции или части кода. Не забудьте освободить память с помощью функции deleteMatrix, чтобы избежать утечек памяти.