Langage C et les structures
Fermé
Delph
-
29 janv. 2003 à 20:05
sha Messages postés 9 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 19 février 2003 - 30 janv. 2003 à 22:55
sha Messages postés 9 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 19 février 2003 - 30 janv. 2003 à 22:55
A voir également:
- Langage C et les structures
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Dev-Pascal - Télécharger - Édition & Programmation
4 réponses
haiti
Messages postés
18
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
26 mars 2003
29 janv. 2003 à 20:41
29 janv. 2003 à 20:41
Les tableaux doivent avoir une dimension fixe. C'est pour cela dans la déclaration , la dimension est une constante.
Si tu veux dynamiquement crée des tableaux à dimension variable, tu peux faire des listes chainées.
-->Hey You Keep Cool.
Si tu veux dynamiquement crée des tableaux à dimension variable, tu peux faire des listes chainées.
-->Hey You Keep Cool.
Krizniak
Messages postés
26
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
10 février 2003
4
30 janv. 2003 à 16:02
30 janv. 2003 à 16:02
En C, par constante, on entend soit :
- une constante figurative telle 8, 25 ou 550
- une définition de type macro, donnée par l'instruction "#define NBELEM 250"
D'autre part, pour revenir à ce que disais haiti, au nom évocateur (vivement les vacances au soleil...), tu peux créer des tableaux à dimension variable. Attention cependant à ne pas confondre tableaux et listes chaînées. Les tableaux sont des éléments qui, en mémoire, sont contigus ! Pour les listes, les éléments sont alloués de de manière aléatoire en mémoire.
Allons plus loin : un tableau statique est défini sur le tas (stack), qui est une portion de mémoire associé au programme. Sa taille en est fixe (stack size).
Par contre, un tableau dynamique, ou une liste, est généralement définie sur la pile (heap), dont la taille est déterminée par les ressources disponibles.
Enfin, voici la 'syntaxe' pour définir un tableau de manière dynamique :
long arrSize = 10;
long *lngArr; //définition d'un pointeur sur le type de contenu du tableau
lngArr = new long[arrSize] ;
Cette syntaxe permet d'allouer la mémoire nécessaire au tableau.
S'assurer, bien entendu, avant usage, que le pointeur retourné n'est pas NULL...
Krizniak
Mon crédo : "Aide-toi, le ciel t'aidera..."
- une constante figurative telle 8, 25 ou 550
- une définition de type macro, donnée par l'instruction "#define NBELEM 250"
D'autre part, pour revenir à ce que disais haiti, au nom évocateur (vivement les vacances au soleil...), tu peux créer des tableaux à dimension variable. Attention cependant à ne pas confondre tableaux et listes chaînées. Les tableaux sont des éléments qui, en mémoire, sont contigus ! Pour les listes, les éléments sont alloués de de manière aléatoire en mémoire.
Allons plus loin : un tableau statique est défini sur le tas (stack), qui est une portion de mémoire associé au programme. Sa taille en est fixe (stack size).
Par contre, un tableau dynamique, ou une liste, est généralement définie sur la pile (heap), dont la taille est déterminée par les ressources disponibles.
Enfin, voici la 'syntaxe' pour définir un tableau de manière dynamique :
long arrSize = 10;
long *lngArr; //définition d'un pointeur sur le type de contenu du tableau
lngArr = new long[arrSize] ;
Cette syntaxe permet d'allouer la mémoire nécessaire au tableau.
S'assurer, bien entendu, avant usage, que le pointeur retourné n'est pas NULL...
Krizniak
Mon crédo : "Aide-toi, le ciel t'aidera..."
sha
Messages postés
9
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
19 février 2003
30 janv. 2003 à 22:52
30 janv. 2003 à 22:52
Une autre facon de déclarer un tableau de maniere dynamique :
malloc et calloc
int taille;
int * tab;
printf ("entrer la taille du tableau");
scanf ("%d",&taille);
tab = (int *) (malloc (taille * sizeoff (int));
et voila ta ton tableau de taille "taille"
malloc et calloc
int taille;
int * tab;
printf ("entrer la taille du tableau");
scanf ("%d",&taille);
tab = (int *) (malloc (taille * sizeoff (int));
et voila ta ton tableau de taille "taille"
sha
Messages postés
9
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
19 février 2003
30 janv. 2003 à 22:55
30 janv. 2003 à 22:55
Euh désolé, j'ai fait une petite erreur.
Cette ligne
tab = (int *) (malloc (taille * sizeoff (int));
est a remplacé par
tab = (int *) (malloc ( sizeof (taille * int));
Cette ligne
tab = (int *) (malloc (taille * sizeoff (int));
est a remplacé par
tab = (int *) (malloc ( sizeof (taille * int));