Tablica dwuwymiarowa jako parametr funkcji (nieznane wymiary)

0

W swoim programie będę musiał utworzyć tablicę dwuwymiarową. Nie zawsze jest to tablica o znanych rozmiarach. Czasami użytkownik może być poproszony o podanie jej wymiarów. Aby program był czytelniejszy i bardziej uniwersalny, chciałem pewnie operacje na tablicach przenieść do funkcji. Nie chcę tworzyć tablicy globalnie (prowadzący zajęcia mówi, aby unikać zmiennych globalnych). Nie chcę także od razu robić tablicy odpowiednio większej niż potrzeba. (Po co marnować pamieć na tablicę 1000x1000, jeśli będę używał tylko małej części). Pomyślałem więc, aby tablicę przekazać jako parametr funkcji. Nie wiem jednak jak to zrobić jeśli nie znam od razu jej początkowych wymiarów. Czy można to jakoś zrobić? Czy jednak koniecznie jest podanie jednego z wymiarów?

0

Wykorzystaj std::vector (w końcu mamy XXI wiek) lub przekazuj wszystkie wymiary do funkcji.

0

Vector musiałbym sam napisać :/ Jak to jest z tym przekazaniem wszystkich wymiarów do funkcji? Masz na myśli wywołanie funkcji z nazwą tablicy, wymiarem_x i wymiarem_y?

0

Jeśli masz n-wymiarową tablicę, chcąc na niej operować siłą rzeczy musisz wszystkie n wymiarów podać.

Opakowanie tego wszystkiego w ładny wektor napisany samemu nie jest złym pomysłem, tyle że uzyskasz w efekcie coś gorszego, niż już w standardowej bibliotece istnieje (std::vector), dlaczego więc to robić?

0

Niestety muszę pisać w C. Gdyby był to c++ nie miałbym najmniejszych problemów. Chyba jedynym rozwiązaniem, jest utworzenie dużej, globalnej tablicy, napisanie czegoś w stylu listy z tablicami, albo pisanie operacji na tablicach bez funkcji (w samym mainie) :(

0

Ach, faktycznie - myślałem, że piszesz w C++ ;-)
W takim razie rozwiązaniem jest przekazywanie tych wymiarów po prostu do każdej funkcji. Nawet nie kombinuj ze zmiennymi globalnymi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1