Diskuze: Vracení z funkce 2d pole

C++ C a C++ Vracení z funkce 2d pole

Avatar
Nymik
Člen
Avatar
Nymik:

Dobrý den,

Rád bych poprosil o radu ohledně vracení hodnot z funkce, jedná se o to že: potřebuju vytvořit funkci ve které dále vytvořím 2d pole(matici) a toto pole později vrátím a případně vypíšu nebo ho použiji na další výpočty v jiných funkcích. Chtěl bych to udělat pomocí pointerů, ale stále nemůžu dojít jak na to. Budu vděčný za každou radu, moc děkuji :).

 
Odpovědět 30.8.2014 15:46
Avatar
Nymik
Člen
Avatar
Odpovídá na Nymik
Nymik:

Ještě jedna věc k tomu, to pole by mělo být dynamické aby se mohla zadat jeho velikost během výpočtu. Děkuji.

 
Nahoru Odpovědět 30.8.2014 15:52
Avatar
Neaktivní uživatel:

Ahoj, malo by to byť nejak takto:

#include <iostream>

using namespace std;
int **createMatrix(int height, int width);

int main(){
        cout << "Enter number of rows: " << endl;
        int rows;
        cin >> rows;
        cout << "Enter number od columns: " << endl;
        int columns;
        cin >> columns;

        int** matrix = createMatrix(rows, columns);

        // vypíše obsah poľa
        for (int i = 0; i < rows; i++){
                for (int j = 0; j < columns; j++){
                        cout << matrix[i][j] << "\t";
                }
                cout << endl;
        }

        // uvolni pamäť
        for (int i = 0; i < rows; i++){
                delete[] matrix[i];
        }
        delete[] matrix;

}

int **createMatrix(int rows, int columns){

        // alokuje dynamicky pamäť
        int** matrix = new int*[rows];
        for (int i = 0; i < rows; i++){
                matrix[i] = new int[columns];
        }

        // naplní pole nulami
        for (int i = 0; i < rows; i++){
                for (int j = 0; j < columns; j++){
                        matrix[i][j] = 0;
                }
        }

        return matrix;
}

Ak niečomu nerozumieš, pýtaj sa :)

Nahoru Odpovědět 30.8.2014 16:37
Neaktivní uživatelský účet
Avatar
Nymik
Člen
Avatar
Odpovídá na Neaktivní uživatel
Nymik:

Děkuju, rozumím :). Ještě jednou díky :).

 
Nahoru Odpovědět 30.8.2014 16:39
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.