Académique Documents
Professionnel Documents
Culture Documents
Données 2AP
Exemple du Cours de l’allocation dynamique (malloc/realloc/free/sizeof)
#include<stdio.h>
#include<stdlib.h> //malloc/realloc/free/sizeof
main(){
float *t;
int i,n, n2, is;
printf("Donner le nbre de reels a saisir:\n");
scanf("%d",&n);
//Allocation de la mémoire : malloc
t=(float*)malloc(n*sizeof(float));
if(t!=NULL){
printf("Tableau bien alloue!\n");
//Lecture et ecriture du tableau t
puts("Lecture du tableau:");
for(i=0;i<n;i++){
printf("Donner le reel %d:\n",i+1);
scanf("%f",t+i);
}
puts("Affichage du tableau:");
for(i=0;i<n;i++){
printf("T[%d]=%.2f\n",i+1,*(t+i));
}
printf("Donner le nbre de cases a rajouter ds le tableau:\n");
scanf("%d",&n2);
t=(float*)realloc(t,(n+n2)*sizeof(float)); //Ajout de n2 cases à la fin de t
if(t){
for(i=n;i<n+n2;i++){
printf("Donner le reel %d:\n",i+1);
scanf("%f",t+i);
}
for(i=0;i<n+n2;i++){
printf("T[%d]=%.2f\n",i+1,*(t+i));
}
}else puts("Impossible de rajouter d'autres cases!!!");
M. AATILA
}
free(t);//Liberation de la mémoire allouee par malloc
}else printf("Espace memoire non suffisant!!!!\n");
}