Tablica Dynamiczna

0

Witam. Napisałem ostatnio program, który ma za zadanie tworzyć tablicę dynamiczną o wymiarach podanych przez użytkownika i wypełnić ją losowo z zakresu podanego również przez użytkownika. Niestety, przestaje działać po pobraniu danych. Czy ktoś może wie dlaczego? Z góry dziękuję za odpowiedź

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

void pobierz(int a, int b, int c, int d){
    cout << "Podaj wymiar tablicy ";
    cin >> a >> b;
    cout << "Podaj zakres tablicy ";
    do {
    cin >> c >> d;
    if (d<c) cout << "Podany zakres jest niepoprawny. Podaj zakres jeszcze raz ";
}    while (d<c);
}

void tworz(int a, int b, int **tab){
    tab=new int *[a];
    for (int i=0; i<a; i++){
    tab[i]=new int [b];
    }
}
void losuj(int a, int b, int c, int d, int **tab){
    for (int i=0; i<a; i++){
    for (int j=0; j<b; j++){
    tab[i][j]=rand()%(b-a+1)+a;
    cout << tab[i][j] << " ";
    }    cout << endl;
    }
}

int main(){
    srand(time(0));
    int a,b,c,d;
    int **tab;
    pobierz(a,b,c,d);
    tworz(a,b,tab);
    losuj(a,b,c,d,tab);
    
    for (int i=0; i<a; i++){ delete []tab[i];}    
    delete []tab;
    return 0;
}
1
tab=tworz(a,b);
int **tworz(unsigned y,unsigned x)
  {
   int **tab;
   tab=new int*[y];
   for(int i=0;i<y;++i) tab[i]=new int[x];
   return tab;
  }
tworz(a,b,&tab);
void tworz(int y, int x,int ***tab)
  {
   *tab=new int*[y];
   for(int i=0;i<y;++i) (*tab)[i]=new int[x];
  }

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