Witam,
Mam pytanie jak przekazać tablice dwuwymiarową dynamiczną do funkcji przez wskaźnik, żeby można było edytować jej zawartość.
Przekazywanie tablicy do funkcji
- Rejestracja: dni
- Ostatnio: dni
- Postów: 99
- Rejestracja: dni
- Ostatnio: dni
void foo(jakis_typ **tab, size_t wierszy, size_t kolumn);
zakładając że funkcja nie będzie zmieniać rozmiaru tablicy.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 5046
Normalnie. Tablice same z siebie są przekazywane przez referencję. Inna sprawa jak ją odbierzesz w funkcji. Możesz jako tablicę albo jako wskaźnik. W takim wypadku chyba będzie lepiej jako wskaźnik:
void func(int * tab);
Teraz tab wskazuje na pierwszy element tablicy. Potem masz już zwykłe przesuwanie wskaźnika. I możesz ją potraktować jako tablicę jednowymiarową, gdzie rozmiar jest równy iloczynowi wielkości obu wymiarów.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 99
Mam taką tablice:
int **tab = new int*[liczba_p];
for(unsigned int i = 0; i < liczba_p; ++i){
tab[i] = new int[2];
}
i taką funkcji
void sortuj(int **tab)
no i jak mam jak mam ją wywołać bo jak próbuje to mi błędy wywala
- Rejestracja: dni
- Ostatnio: dni
- Postów: 4883
teraz mnie naszła refleksja (na 500 post). To jest straszne, ze im młodsze pokolenie tym bardziej staje się leniwie i nie próbuje samo nic zrobić tylko "daj", jak chcą mieć wszystko gotowe. Ludzkosc zamiast stawac sie coraz bardziej prodyktywna i tworcza, staje sie coraz bardziej leniwa. Smutne, ze studenci maja pretensje ze byly pytania na pracy magisterskiej... ze wykladowca cos wymaga...
Ten problem jest tak popularny, że pewnie dokładnie z Twoim kodem jest gdzieś to na jakimś forum z takim samym pytaniem.