Tableau contenant des references de structure
adrien
-
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21506 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
Configuration: Windows XP Opera 9.02
1 réponse
-
Salut,
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