Fiche Les Structures en C
Fiche de révision : Les Structures en C
1. Qu’est-ce qu’une structure?
Une structure en C est un regroupement de variables de types différents sous un même nom. Elle permet de manipuler des données complexes plus facilement.
2. Déclaration d’une structure
Une structure est définie avec le mot-clé struct.
1
2
3
4
struct Point {
int x;
int y;
};
Ici, struct Point est un type de structure contenant deux variables x et y de type int.
3. Déclaration et initialisation d’une variable de structure
Une variable de structure peut être déclarée de plusieurs façons :
1
2
3
4
struct Point p1; // Déclaration
p1.x = 10;
p1.y = 20; // Initialisation
Une structure peut aussi être initialisée directement :
1
struct Point p2 = {30, 40};
4. Accès aux membres d’une structure
L’opérateur .
est utilisé pour accéder aux membres d’une structure.
1
printf("x: %d, y: %d\n", p1.x, p1.y);
5. Utilisation des pointeurs avec les structures
Un pointeur vers une structure est utilisé pour éviter la copie des données.
1
2
struct Point *ptr = &p1;
printf("x: %d, y: %d\n", ptr->x, ptr->y); // Utilisation de l'opérateur ->
6. Structures imbriquées
Une structure peut contenir une autre structure.
1
2
3
4
struct Rectangle {
struct Point hautGauche;
struct Point basDroit;
};
7. Structures et fonctions
Une structure peut être passée en argument à une fonction.
1
2
3
void afficherPoint(struct Point p) {
printf("x: %d, y: %d\n", p.x, p.y);
}
Pour éviter de copier les données, on peut utiliser un pointeur :
1
2
3
4
void deplacerPoint(struct Point *p, int dx, int dy) {
p->x += dx;
p->y += dy;
}
8. Structures et mémoire dynamique
Les structures peuvent être allouées dynamiquement avec malloc.
1
2
3
4
struct Point *p = (struct Point *)malloc(sizeof(struct Point));
p->x = 50;
p->y = 60;
free(p);
9. Type typedef
et structures
typedef
permet de définir un alias pour simplifier l’utilisation des structures.
1
2
3
4
5
6
typedef struct {
int x;
int y;
} Point;
Point p3 = {70, 80};
10. Bonnes pratiques
- Toujours initialiser les structures avant utilisation.
- Utiliser
typedef
pour rendre le code plus lisible. - Libérer la mémoire allouée dynamiquement (free).
- Privilégier les pointeurs pour éviter la copie inutile de données.