[C++] Przekazywanie tablicy dwuwymiarowej do funkcji
Ostatnio zmodyfikowano 2019-03-25 23:40
cramer Temat założony przez niniejszego użytkownika |
[C++] Przekazywanie tablicy dwuwymiarowej do funkcji » 2019-03-25 23:25:35 Witam, Piszę prosty program w C++. A że nigdy tego nie robiłem to wczoraj siadłem i przeczytałem większość z potrzebnych mi zagadnień z kursu na tej stronie. Program działa ale chciałbym go przepisać, żeby działał na funkcjach i tu zaczynają się schody gdyż nie wiem jak przekazać do funkcji tablicę dwywymiarową o wielkości, która nie jest znana podczas kompilacji. Wartości x i y tej tablicy są podawane dopiero przez użytkownika po uruchomieniu programu. W programie zmienne x, y oraz tablica mapa[x][y] są zainicjowane a ich wartości ustalone przed wywołaniem funkcji. Próbowałem poprzez referencje ale podczas kompilacji wywala mi kilka komunikatów o błędach, np: "[Error] expected ',' or '...' before 'mapa'" dla lini: void zerowanie_mapy( int & x, int & y, int & mapa[ x ][ y ] ) . Funkcję wywołuję: zerowanie_mapy( x, y, mapa ); Jak poprawnie przekażę te argumenty do funkcji? |
|
pekfos |
» 2019-03-25 23:40:02 Po pierwsze, tworzysz tablicę błędnie, jeśli rozmiar nie jest znany w czasie kompilacji. Tablice jednowymiarowe, czerwona ramka. Po drugie, przekazywanie tablicy przez referencję wygląda tak: void f( int( & mapa )[ x ][ y ] )
Inaczej jest to tablica referencji, która jest niedozwolona w C++. Różnica między zwykłym przekazaniem tablicy a przez referencję jest taka, że w przypadku referencji oba wymiary tablicy muszą być znane z góry, a nie tylko jeden. |
|
« 1 » |