Bienvenue visiteur (Inscription |  Connexion)
Qui est en ligne ?
Il y a : 20 utilisateurs en ligne, consultez le détail
Auteur Message
TrustRobot
#0 Message posté le : 15-04-2007 à 21:04:11


Scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 04-07-2003
Nombre de messages : 177

1. Tableaux dynamiques en C :



Dans un programme C, vous devez déclarer tous les éléments dont vous avez besoin en début de programme ce qui permet de réserver suffisamment de mémoire pour toutes les variables. Le problème est que si en fonction des exécutions vous avez besoin tantôt d'un tableau de 20 cases et la prochaine fois d'un autre de 100 cases, vous devez en déclarer un de 100 cases et pleurer sur les 80 cases qui seront "gaspillées" une fois sur 2.

Avec les tableaux dynamiques, ce problème trouve une solution, car ils vous permettent de fixer la taille du taille pendant l'exécution. Comment faire ? Avec malloc :
#include <stdio.h>

#include <stdlib.h>



int main (void)

{

int *tab;

int n,num,i;

num=1;

for (n = 3 ; n <= 5 ; n++)

{

if (!(tab=(int *) malloc(n*sizeof(int)))) {printf("Pb d'allocation\n"); exit(1);}

printf("Le tableau %d a %d éléments :\n\n", num,n);



for (i = 0 ; i <= n-1 ; i++)

{

*(tab+i)=i+1;

printf("%d\n",*(tab+i));

}

num++;

printf("\n");

free(tab);

}

return(1);

}


Le programme affiche :
Le tableau 1 a 3 éléments :

1
2
3

Le tableau 2 a 4 éléments :

1
2
3
4

Le tableau 3 a 5 éléments :

1
2
3
4
5

«« Précédent   Sommaire   




--Message édité par TrustRobot le 15-04-2007 à 21:04:11--