Correction : Structures
Correction Exercice 1
Objectif : déclarer une structure et en afficher les sous variables
struct.h
#ifndef __STRUCT_H__
#define __STRUCT_H__
struct s_char {
int strength;
int intelligence;
int wisdom;
int agility;
int endurance;
};
typedef struct s_char character;
#endif
main.c
#include <stdlib.h>
#include <stdio.h>
#include "struct.h"
int main()
{
character perso;
perso.strength = 11;
perso.intelligence = 16;
perso.wisdom = 14;
perso.agility = 12;
perso.endurance = 10;
printf("Mon personnage a les caracteristiques suivantes : \n\nForce : %d\nIntelligence : %d\nSagesse : %d\nAgilité : %d\nEndurance : %d\n", perso.strength, perso.intelligence, perso.wisdom, perso.agility, perso.endurance);
return(0);
}
Correction Exercice 2
Objectif : Déclarer une structure dans le main et la remplir dans une autre fonction en utilisant son adresse
struct.h
#ifndef __STRUCT_H__
#define __STRUCT_H__
struct s_char {
int strength;
int intelligence;
int wisdom;
int agility;
int endurance;
};
typedef struct s_char character;
#endif
main.c
#include <stdlib.h>
#include <stdio.h>
#include "struct.h"
void fill_struct(character *perso)
{
perso->strength = 11;
perso->intelligence = 16;
perso->wisdom = 14;
perso->agility = 12;
perso->endurance = 10;
}
int main()
{
character perso;
fill_struct(&perso);
printf("Mon personnage a les caracteristiques suivantes : \n\nForce : %d\nIntelligence : %d\nSagesse : %d\nAgilité : %d\nEndurance : %d\n", perso.strength, perso.intelligence, perso.wisdom, perso.agility, perso.endurance);
return(0);
}
Correction Exercice 3
Objectif : Déclarer une structure et ses sous-variables simples puis allouer la mémoire pour cette structure.
struct.h
#ifndef __STRUCT_H__
#define __STRUCT_H__
struct s_char {
int strength;
int intelligence;
int wisdom;
int agility;
int endurance;
};
typedef struct s_char character;
#endif
main.c
#include <stdlib.h>
#include <stdio.h>
#include "struct.h"
int main()
{
character *perso;
perso = malloc(sizeof(*perso));
perso->strength = 11;
perso->intelligence = 16;
perso->wisdom = 14;
perso->agility = 12;
perso->endurance = 10;
printf("Mon personnage a les caracteristiques suivantes : \n\nForce : %d\nIntelligence : %d\nSagesse : %d\nAgilité : %d\nEndurance : %d\n", perso->strength, perso->intelligence, perso->wisdom, perso->agility, perso->endurance);
free(perso);
return(0);
}
Correction Exercice 4
Objectif : Créer une structure avec un mélange de sous-variables simples et complexes et allouez la mémoire pour la structure et pour les sous-variables complexes.
struct.h
#ifndef __STRUCT_H__
#define __STRUCT_H__
struct s_char {
char *name;
int strength;
int intelligence;
int wisdom;
int agility;
int endurance;
};
typedef struct s_char character;
#endif
main.c
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "struct.h"
int main()
{
character *perso;
perso = malloc(sizeof(*perso));
perso->name = malloc(strlen("Gaëllan") * sizeof(char));
perso->name = strcpy(perso->name, "Gaëllan");
perso->strength = 11;
perso->intelligence = 16;
perso->wisdom = 14;
perso->agility = 12;
perso->endurance = 10;
printf("Mon personnage %s a les caracteristiques suivantes : \n\nForce : %d\nIntelligence : %d\nSagesse : %d\nAgilité : %d\nEndurance : %d\n", perso->name, perso->strength, perso->intelligence, perso->wisdom, perso->agility, perso->endurance);
free(perso->name);
free(perso);
return(0);
}
29 September 2025