Langage C et les structures
Delph
-
sha Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
sha Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
j'essaie en vain de déclarer un tableau dont la dimension est un entier qui est un élément de la structure, mais le programme ne veut pas compiler car il me dit que ce n'est pas une constante.
Or, même si je mets au préaléble, cet élément de la structure dans un autre entier et que je passe cet autre entier, il ne veut pas non plus?
Que dois-je faire???
Merci d'avance pour votre aide!!!
Or, même si je mets au préaléble, cet élément de la structure dans un autre entier et que je passe cet autre entier, il ne veut pas non plus?
Que dois-je faire???
Merci d'avance pour votre aide!!!
A voir également:
- Langage C et les structures
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage visual basic - Télécharger - Langages
- Langage basic gratuit - Télécharger - Édition & Programmation
4 réponses
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.
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..."