Programmation bas niveau (BNV) Help

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