1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
int main(int argc, char *argv[])
{
/*on va déclarer deux produits... */
type_cellule_produit produit1;
type_cellule_produit produit2;
/* et un pointeur pour suivre la liste */
type_cellule_produit* liste;
/*on initialise produit1 */
strcpy(produit1.data.code,"123");/* avec code[4], il faut penser qu'on n'a
* que trois caracteres utiles
* (il faut le \0 final) */
strcpy(produit1.data.prix,"156,48");/* Typiquement, un prix serait bien
* mieux avec une valeur
* numérique... tu risque
* de vouloir effectuer des
* opérations mathématiques dessus ;) */
/* bon, on n'oublie pas les autres valeurs de data ;) */
/* et on fait pareil avec produit2 */
/* (...) */
/* il reste à faire pointer produit1.suiv sur "l'adresse de produit2" c'est ca
* un pointeur ;) */
produit1.suiv=&produit2;
/* et, pour éviter les problèmes, à faire pointer produit2.suiv sur ...NULL */
produit2.suiv=NULL;
/* Sans oublier de faire pointer notre "pointeur de liste" sur le début de la
* liste (AKA: l'adresse de produit1 ;) ) */
liste=&produit1;
/* on peut maintenant utiliser la liste (par exemple pour un affichage) */
while(liste!=NULL)
{
/*(...)tout l'affichage, que je te laisse gérer */
/* et on passe à l'élément suivant de la liste */
liste=liste->suiv;
/* NOTA: ici, comme les éléments de la listes sont déclarés de
* statiquement, ca ne fait rien si on perd le premier élément...
* Avec une allocation dynamique, il est primordial de veiller à ne
* JAMAIS perdre le premier élément;) */
}
/* il n'y a pas eu d'allocation dynamique, on peut quitter */
return 0;
} |
Partager