Les structures en langage C

Laoko Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je suis un etudiant en genie mecanique et j'ai module d'informatique concernant la programmation en C.j'ai un projet sur les etructures.je voudrais solliciter votre aide pour me permettre de bien comprendre et pourvoir realiser mon projet,je voudrais vous demander un exercice et son corrigé sur les structures.merci pour votre comprehension.
A voir également:

1 réponse

mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Pour ce qui est de trouver des exercices en C, le plus simple c'est de chercher directement sur google, tu es le mieux placé pour trouver des exercices qui correspondent à ton niveau.

En soit, une structure en C peut être vue comme un objet qui regroupe un ensemble d'objet (soit d'autre structures, soit des types de bases comme des int). Exemple :
struct pouet_t{
  int a,b;
  float x;
};

struct plop_t{
  struct pouet_t p;
  int *y;
}

Afin de distinguer facilement les variables des types, je te conseille de rajouter un "_t" à la fin des types que tu définis (ici plop_t et pouet_t).

En mémoire, une structure a pour taille la somme des tailles des objets qu'elle regroupe. Par exemple sizeof(struct pouet_t) = sizeof(int) + sizeof(int) + sizeof(float). C'est pour ça que les types intervenant dans la définition d'une structure doivent être de type connu (c'est à dire soit une structure définie au préalable, soit un type de base, soit un pointeur sur une structure éventuellement pas encore définie).

Pour accéder au champ d'une structure, on utilise l'opérateur ".". Par exemple, si j'ai une structure plop (de type struct plop_t) et une structure pouet (de type struct pouet_t) je peux accéder à pouet.a ; pouet.b ; plop.p ; plop.p.a).

Supposons que j'ai à présent un pointeur pplop (type struct plop_t *) et un pointeur ppouet (type struct pouet_t *) alors je peux écrire *pouet.a (ie (*ppouet).a) ou directement pouet->a. De même je peux écrire (*pplop).p.a ou pplop->p.a.

En espérant que c'est plus clair pour toi,
bonne chance
2