Как вернуть двумерный массив в с++? Как можно вернуть такой массив?class Matrix{
public:
int i,j;
int returnMatrix(int col,int row){
int matrix[col][row];
for(i=0;i<row;i++){
matrix[i][j]=i;
for(j=0;j

21 Авг 2019 в 07:08
295 +1
0
Ответы
1

Возвращение двумерного массива в 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, чтобы избежать утечек памяти.

20 Апр 2024 в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир