Ok więc już wyjaśniam czemu tak sie nie da zrobić. Bo komputer nie jest wszechwiedzący. Skąd komputer miałby wiedzieć ile wierszy i kolumn ma twoja tablica jak zrzutujesz ją na int**?
Pomyśl... Komputer tworzy tablice w taki sposób:
w pamięci tablica tab[2][2] ma komórki ulokowane tak: (0,0)(0,1)(0,2)(1,0)(1,1)(1,2)(2,0)(2,1)(2,2)
Dzięki temu jak robisz tab[X][Y] to komputer wie dokładnie w jakim miejscu w pamięci to jest bo to jest zawsze: tab+(X*ilosc_kolumn+Y)sizeof(typ)
Podkreślam: konieczna jest wiedza na temat ilości kolumn!
Jak rzutujesz to sobie na int* to ta informacja jest bezpowrotnie gubiona i wtedy odwołanie się do tab[X][Y] traci sens.
Oczywiście mozesz zapytać "no ale przecież są tablice dynamiczne i to działa!". Ale proponuje zauważyć ze nie istnieją wielowymiarowe tablice dynamiczne. To są tylko tablice wskaźników do tablic jednowymiarowych (ew po drodze jest więcej tych tablic wskaźników, ale zawsze masz tablicę jednowymiarowe!). Dzięki temu problemu nie ma, bo dla komputera każde [X] jest po prostu dereferencją tab+X*sizeof(typ) i żadna wiedza na temat wymiarów tablicy nie jest potrzebna.