Witam. Mam wykonać polecenie: 'Stworzyć strukturę zawierającą dynamicznie zaalokowaną tablicę dwuwymiarową i jej wymiary. Tablica dwuwymiarowa jest reprezentowana przez odpowiedni wskaźnik.' Oprócz tego jeszcze zwolnić zaalokowaną pamięć.
Oto co napisałem.. byłbym wdzięczny gdyby ktoś sprawdził czy dobrze to zrobiłem i ewentualnie pokazał mi błąd.
Oto co napisałem.. byłbym wdzięczny gdyby ktoś sprawdził czy dobrze to zrobiłem i ewentualnie pokazał mi błąd.
Code:
#include "matrix.h"
typedef struct {
int** tablica;
int m;
int n;
} d_table;
int main( int argc, char** argv ){
int arrt[M_MAX][N_MAX];
int m, n, i, k, l;
k=l=i=0;
srandom(1111);
if (argc != 3)
{
printf("\nPodaj po nazwie programu dwie liczby naturalne okreslajace rozmiar macierzy (maksymalnie 9 na 9) np. 3 4\n");
exit(1);
}
printf("\nOto liczba argumentow: %d\n", argc-1);
n=atoi(argv[1]);
m=atoi(argv[2]);
/*Dynamiczna alokacja tablicy*/
d_table tab;
tab.tablica = (int*)malloc(m * sizeof(int*));
for(i; i < m; ++i)
tab.tablica[i] = (int*)malloc(n * sizeof(int));
tab.m = m;
tab.n = n;
printf("\nWprowadzone rozmiary macierzy to: %d na %d\n",n,m);
if( 0 != arr_rnd ( arrt, &m, &n ) ){ return -1; }
printf("\n");
if( 0 != arr_disp ( arrt, m, n ) ){ return -1; }
printf("\n");
if( 0 != arr_modifNR( arrt, &m, &n ) ){ return -1; }
if( 0 != arr_disp ( arrt, m, n ) ){ return -1; }
for(k; k<tab.m; k++)
{
free(&tab.tablica[k]);
}
for(l; l<tab.n; l++)
{
free(&tab.tablica[l]);
}
return 0;
}