Ĺadny brzuch
Jak mozna dynamicznie alokowac tablice(jedno-, dwuwymiarowa) w jezyku ANSI C? Z gory dzieki za pomoc. Pozdro...
Przez wskazniki
int *tab
tab=(int*) mallock(x) //mallock przydziela pamięć a x to wielkość np tablicy
free(tab) // zwalnia pamić
Przy dynamicznym przyznawaniu pamięci robimy to "ręcznie" (mallock) i "ręcznie" musimy ją zwolnić (free).
Wirusy szybko się rozpowszechniają - a Windows XP to potrafi
cytat:Albert napisał:
...
Nie mallock tylko malloc :)
Kodie
Ok. Tablice jednowymiarowa tak. A jak mozna to zrobic dla tablicy dwuwymiarowej ?
Problem zostal juz rozwiazany. Kolega powyrzej przedstawil poprawny sposob dla tablicy jednowymiarowej.
Poprawna alokacja pamieci dla tablicy dwuwymiarowej w jezyku ANSI C powinna wygladac nastepujaca:
int **tab,i;
tab=(int **)malloc(n*sizeof(int *));
for(i=0;i<n;i++){
tab[i]=(int*)malloc(n*sizeof(int));
}
Pozdrawiam.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Przez wskazniki
int *tab
tab=(int*) mallock(x) //mallock przydziela pamięć a x to wielkość np tablicy
free(tab) // zwalnia pamić
Przy dynamicznym przyznawaniu pamięci robimy to "ręcznie" (mallock) i "ręcznie" musimy ją zwolnić (free).
Wirusy szybko się rozpowszechniają - a Windows XP to potrafi
cytat:Albert napisał:
...
Nie mallock tylko malloc :)
Kodie
Ok. Tablice jednowymiarowa tak. A jak mozna to zrobic dla tablicy dwuwymiarowej ?
Problem zostal juz rozwiazany. Kolega powyrzej przedstawil poprawny sposob dla tablicy jednowymiarowej.
Poprawna alokacja pamieci dla tablicy dwuwymiarowej w jezyku ANSI C powinna wygladac nastepujaca:
int **tab,i;
tab=(int **)malloc(n*sizeof(int *));
for(i=0;i<n;i++){
tab[i]=(int*)malloc(n*sizeof(int));
}
Pozdrawiam.