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

[C++] Przekazywanie tablicy dwuwymiarowej do funkcji

Ostatnio zmodyfikowano 2019-03-25 23:40
Autor Wiadomość
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?
P-174250
pekfos
» 2019-03-25 23:40:02
Po pierwsze, tworzysz tablicę błędnie, jeśli rozmiar nie jest znany w czasie kompilacji. » Kurs C++ » Poziom 2Tablice jednowymiarowe lekcja, czerwona ramka.
Po drugie, przekazywanie tablicy przez referencję wygląda tak:
C/C++
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.
P-174251
« 1 »
  Strona 1 z 1