Wskaźniki i tablice dynamiczne
Ostatnio zmodyfikowano 2016-05-22 14:24
DeWuKa Temat założony przez niniejszego użytkownika |
Wskaźniki i tablice dynamiczne » 2016-05-22 05:26:34 Robię zdanie ze wskaźnikami i trochę strzelając w niedziałającej linii kodu udało mi się go uruchomić, jednak nie rozumiem dlaczego. #include <iostream>
using namespace std;
void utworz( int ** tab, int n ) { * tab = new int[ n ]; for( int i = 0; i < n; i++ ) { tab[ 0 ][ i ] = i * i * i; cout << tab[ 0 ][ i ] << endl; } }
int main() { int * tab; int n; cout << "podaj liczbe: " << endl; cin >> n; utworz( & tab, n ); delete[] tab; return 0; }
|
|
Gibas11 |
» 2016-05-22 07:11:44 Zrobiłeś trochę bałaganu z gwiazdkami, powinno być (*tab)[i] , a [0] jest mniej-więcej równoważne gwiazdce w tym kontekscie. Przekaż wskaźnik przez referencję, będzie dużo prościej. |
|
mateczek |
» 2016-05-22 08:39:36 albo przekaż wskaźnik przez referencje będzie prościej #include <iostream>
using namespace std;
void utworz( int * & tab, int n ) { tab = new int[ n ]; for( int i = 0; i < n; i++ ) { tab[ i ] = i * i * i; cout << tab[ i ] << endl; } }
int main() { int * tab; int n; cout << "podaj liczbe: " << endl; cin >> n; utworz( tab, n ); delete[] tab; return 0; }
|
|
DeWuKa Temat założony przez niniejszego użytkownika |
» 2016-05-22 11:19:54 Dzięki za odpowiedzi, strasznie się plączę w tym wskaźnikach. |
|
carlosmay |
» 2016-05-22 14:24:12 strasznie się plączę w tym wskaźnikach. |
Właśnie po to wymyślono std::vector (dynamiczna tablica) i inteligentne wskaźniki. Ograniczają one błędy, które często pojawiają się przy pracy na gołych new i delete . |
|
« 1 » |