Witam!
Chciałbym się dowiedzieć, czy dobrze stworzyłem tablicę dynamiczną gdzie n - to liczba wierszy a m - liczba kolumn. Opierałem się na źródłach internetowych.
int **tab;
int m,n;
tab = malloc(n*sizeof(int*));
if(tab==NULL){
printf("Bład alokacji!");
return 1;
}
for(i=0;i<n;i++){
tab[i] = malloc(m*sizeof(int*));
}
if(tab[i]==NULL){
printf("Bład alokacji");
return 1;
}
Chciałbym dowiedzieć się i zrozumieć działanie funkcji malloc.
- Dlaczego tworzymy zmienną **tab z dwoma gwiazdkami?
- Dlaczego w deklaracji:
malloc(m*sizeof(int*));
przy int jest gwiazdka?
- Czy deklaracja:
tab = malloc(n*sizeof(int*));
tworzy wiersze a w kolejnej
for(i=0;i<n;i++){
tab[i] = malloc(m*sizeof(int*));
}
podczepia pod każdy kolejny wiersz wymaganą ilość kolumn o długości n? Nie mogę zrozumieć działania tych deklaracji.
Pozdrawiam.