From 5a08a4e1e055a0a702a54cfa867d7fdebf2c1ad7 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Fri, 19 Sep 2025 12:16:41 +0200 Subject: Cours du 15 au 19 septembre --- .../tme/tme1-2/exo1/tme1_exo1p3.c" | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 "semestre 3/structures des donn\303\251es/tme/tme1-2/exo1/tme1_exo1p3.c" (limited to 'semestre 3/structures des données/tme/tme1-2/exo1/tme1_exo1p3.c') diff --git "a/semestre 3/structures des donn\303\251es/tme/tme1-2/exo1/tme1_exo1p3.c" "b/semestre 3/structures des donn\303\251es/tme/tme1-2/exo1/tme1_exo1p3.c" new file mode 100644 index 0000000..577721c --- /dev/null +++ "b/semestre 3/structures des donn\303\251es/tme/tme1-2/exo1/tme1_exo1p3.c" @@ -0,0 +1,45 @@ +#include +#include + +typedef struct tableau{ + int* tab; + int maxTaille; + int position; +}Tableau; + +void ajouterElement(int a, Tableau *t){ + t->tab[t->position]=a; + t->position++; +} + +Tableau* initTableau(int maxTaille){ + Tableau* t = (Tableau*)malloc(sizeof(Tableau)); + t->position=0; + t->maxTaille=maxTaille; + /* les 400 bytes repeperes par valgrind proviennent d'ici : 400/4 = 100, 4 etant la taille d'un int ici */ + t->tab=(int*)malloc(sizeof(int)*maxTaille); + return t; +} + +void affichageTableau(Tableau* t){ + printf("t->position = %d\n",t->position); + printf("[ "); + for (int i=0; i < (t->position); i++){ + printf("%d ",t->tab[i]); + } + printf("]\n"); +} + +int main(){ + Tableau* t; + t = initTableau(100); + ajouterElement(5,t); + ajouterElement(18,t); + ajouterElement(99999,t); + ajouterElement(-452,t); + ajouterElement(4587,t); + affichageTableau(t); + /* ce programme provoquait un leak car il ne liberait jamais tab */ + free(t->tab); + free(t); +} -- cgit v1.2.3