Tableau contenant des references de structure
adrien
-
lami20j Messages postés 21644 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21644 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
bonjour à tous !!
En language C
voila jaimerais realiser un tableu où chaque case pointe sur une structure...
En effet a chaque case jaimerai avoir accés a une structure qui serai remplie differament.
par exemple avec un structure affectation
struct affectation {
int valeur;
char variable;
};
typedef struct affectation *aff;
comment doit je declarer mon tableau et comment que faut t-il que je mette dedans...Auriez vous un exemple ... Aider un pauvre debutant en langage C
En language C
voila jaimerais realiser un tableu où chaque case pointe sur une structure...
En effet a chaque case jaimerai avoir accés a une structure qui serai remplie differament.
par exemple avec un structure affectation
struct affectation {
int valeur;
char variable;
};
typedef struct affectation *aff;
comment doit je declarer mon tableau et comment que faut t-il que je mette dedans...Auriez vous un exemple ... Aider un pauvre debutant en langage C
A voir également:
- Tableau contenant des references de structure
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des quatre premières colonnes. - Guide
- Imprimer un tableau excel - Guide
1 réponse
Salut,
en attendant la réponse d'un pro ....
ta structure a la forme
aff = (struct affectation *) malloc(3 * sizeof(struct affectation))
Et voici le code
en attendant la réponse d'un pro ....
ta structure a la forme
------------------ | ---------------- | ||[valeur][lettre]|| | ---------------- | ------------------si j'ai besoin de saisir 3 elements je dois allouer 3 cases
aff = (struct affectation *) malloc(3 * sizeof(struct affectation))
Un tableau de structures de 3 éléments
--------------------------------------------------------------
| ---------------- | | ---------------- | | ---------------- |
||[valeur][lettre]|| ||[valeur][lettre]|| ||[valeur][lettre]||
| ---------------- | | ---------------- | | ---------------- |
--------------------------------------------------------------
CASE 0 CASE 1 CASE 2
Et voici le code
#include<stdio.h>
#include<stdlib.h>
int main()
{
int termine=0,c,nb,i=0,elem;
struct affectation {
int valeur;
char lettre;
};
struct affectation *aff;
/* affichage de la taille de la structure affectation
* qui contient un integer et un char
*/
printf("Taille structure initiale: %d\n",sizeof(struct affectation));
/* choisir le nombre d elements
* qu on veuille saisir
* qui veut dire que pour un nombre N d elements
* on devra saisir N fois
* une valeur et une lettre
*/
printf("Entrez le nombre d'éléments : ");
scanf("%d",&elem);
/* allocation de la mémoire
* nombre d elements * taille de la structure
*/
aff = (struct affectation *) malloc(elem * sizeof(struct affectation));
/* la taille de tableau de structures
* apres l allocation de la memoire
*/
printf("Taille de tableau de structures : %d x %d = %d\n",
elem,sizeof(struct affectation),elem * sizeof(struct affectation));
/* TANT QUE je n entre pas -1
* ET le compteur est plus petit
* que le nombre d element
*
* plus petit puisque l indice de tableau
* commence à zero
* donc les indices de tableau
* seront 0, 1 et 2
*/
while(! termine && i < elem){
printf("Entrez une valeur (-1 pour quitter): ");
scanf("%d",&(aff[i].valeur));
/* je compare la valeur saisie
* avec -1
* si le test et vrai
* alors je sors de la boucle
*/
termine=(aff[i].valeur==-1);
/* vider le buffer */
c=getchar();
/* SI on n a pas taper -1
* on continue la saisie
*/
if (! termine){
printf("Entrez une lettre : ");
scanf("%c",&(aff[i].lettre));
i++;
}
}
/* sauvegarde de nombre d elements
* saisies
*/
nb=i;
/* affichage */
for(i=0;i<nb;i++)
printf("valeur = %d et lettre = %c\n"
,aff[i].valeur,aff[i].lettre);
return 0;
}
-- Joyeux Noël lami20j