la pile c'est une petite partie de la ram qui sert a faire des appels de fonctions et stocker les variables locales :
void f() {
//sur la pile
int x;
int tab[256];
int tab2[];
//dans la RAM
tab2 = malloc(200*sizeof(int));
//la y'a 400 o. de moins de libre dans la ram
free(tab2);
//la il sont de nouveau libres
}
avec malloc, tu peux en faire autant que tu veux dans les 192ko
la pile, y'en a 16ko je crois.
Le pb avec la pile, c'est que tu sais pas quand elle est pleine. Avec malloc, s'il te renvoie NULL, c'est qu'il n'y a plus de place libre.