| Qui est en ligne ? |
| Il y a : 14 utilisateurs en ligne, consultez le détail |
Forum » Documentation Linux » Pour aller plus loin |
Forum modéré par : Jul |
| Même auteur |
|
Score ( voter ) : ![]() ![]()
|
|
|
|
|
| Page : [1] |
| Auteur | Message |
|---|---|
|
|
#0 Message posté le : 15-04-2007 à 21:04:11 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 04-07-2003 Nombre de messages : 171 |
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-- |
| Page : [1] |
Forum » Documentation Linux » Pour aller plus loin |
Forum modéré par : Jul |
| Même auteur |
|
Score ( voter ) : ![]() ![]()
|
|
|
|
|
- Petit scarabée : 0 pastille, moins de 100 messages
- Scarabée : 0 pastille, plus de 100 messages
- Hobbit : 1 pastille, plus de 1000 messages
- Naboo : 2 pastilles, plus de 2000 messages
- Elfe : 3 pastilles, plus de 3000 messages
- Jedi : 4 pastilles, plus de 4000 messages
- Maître Jedi : 5 pastilles, plus de 5000 messages
