Witam, mam za zadanie zmodyfikować program na tworzenie tabeli jednowymiarowej na dwuwymiarową. Gdy podaję argument dla tab[1][0] i naciskam enter program wyłącza się. Czy ktoś mógłby mi doradzić gdzie w kodzie mam błąd.
#include <iostream>
using namespace std;
struct tablica
{
int **dane;
int rozmiar;
int rozmiar1;
};
void inicjuj(tablica &tab, int wysokosc, int szerokosc)
{
tab.rozmiar = wysokosc;
tab.rozmiar1 = szerokosc;
int **dane = new int *[tab.rozmiar];
for(int i=0; i<tab.rozmiar; i++)
{
dane[i] = new int[tab.rozmiar1];
}
}
void wypisz(const tablica &tab)
{
if(tab.rozmiar < 1 && tab.rozmiar1 < 1)
{
cout << "Pusta tablica";
}
else
{
for (int i=0; i<tab.rozmiar; i++)
{
for (int j=0; j<tab.rozmiar1; j++)
{
cout << tab.dane[i][j] << " ";
}
}
}
cout << endl;
}
void wczytaj(tablica &tab)
{
if(tab.rozmiar < 1 && tab.rozmiar1 < 1)
{
cout << "Pusta tablica";
}
else
{
for(int i=0; i<tab.rozmiar; i++)
{
for(int j=0; j<tab.rozmiar1; j++)
{
//cout<<"["<<i<<"]["<<j<<"]"<<endl;
cout << "Podaj wartosc nr ["<< i+1 << "][" << j+1 << "]" << ": ";
cin >> tab.dane[i][j];
}
}
}
}
void zwolnij(tablica &tab)
{
delete []tab.dane;
tab.dane = NULL;
tab.rozmiar = 0;
tab.rozmiar1 = 0;
}
int main()
{
tablica mojaTablica1;
inicjuj(mojaTablica1, 2, 2);
wczytaj(mojaTablica1);
wypisz(mojaTablica1);
zwolnij(mojaTablica1);
wypisz(mojaTablica1);
}