Witam,
Mam pytanie jak przekazać tablice dwuwymiarową dynamiczną do funkcji przez wskaźnik, żeby można było edytować jej zawartość.
void foo(jakis_typ **tab, size_t wierszy, size_t kolumn);
zakładając że funkcja nie będzie zmieniać rozmiaru tablicy.
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.
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
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.