Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Tablice w funkcjach

Ostatnio zmodyfikowano 2014-11-08 18:33
Autor Wiadomość
plor
Temat założony przez niniejszego użytkownika
Tablice w funkcjach
» 2014-11-08 18:13:29
To jest mój pierwszy post i od razu kompromitujące pytanie (w c++ jestem zielona :) )
Funkcję, która tworzy tablicę nawet udało mi się skutecznie napisać, przy próbie napisania funkcji wyświetlającej tą tablicę pojawił się błąd, którego nie umiem znaleźć. Piszę w microsoft visual c++ 2010.
C/C++
void tworztab( int n )
{
    double * tab = new double[ n ];
    for( int i = 0; i < n; i++ )
    {
        cin >> tab[ i ];
    }
}
void wypisz( double const * tab, int n )
{
    for( int i = 0; i < n; i++ )
    {
       
        cout << tab[ i ] << "  ";
    }
}
I mając n, wywołuję tak:

tworztab(n);
wypisz(tab, n);

Stąd moje pytanie, co tu jest nie tak?
P-120180
Monika90
» 2014-11-08 18:28:31
Przerób funkcję tworztab, tak żeby zwracała wskaźnik tab i wtedy wywołuj tak
C/C++
tab = tworztab( n );
wypisz( tab, n );

Uwaga ogólna, oczywiście zgodnie z zasadami sztuki należałoby użyć inteligentnych wskaźników, np. std::unique_ptr<double[]> albo po prostu std::vector<double>
P-120182
1aam2am1
» 2014-11-08 18:33:23
W tworztab tworzysz tablice i jej adres przypisujesz do tab*
Gdy wychodzisz z funkcji tracisz wskaźnik tab i masz wyciek pamięci.

To są podstawowe błędy. Skończ może najpierw jakiś kurs ze strony.
I wygoogluj jak się alokuje pamięć w c++.
P-120183
« 1 »
  Strona 1 z 1