From 9c3688163d9d99a92e5f9a0e2ce0fcf0a38f8ef2 Mon Sep 17 00:00:00 2001 From: "louis.germain" Date: Tue, 9 Jan 2024 11:49:12 +0100 Subject: [PATCH] Gestion d'erreurs --- SAE2 | Bin 35496 -> 22696 bytes files/devis.txt | 3 ++- includes/charge.h | 26 ++++++++++---------- obj/charge.o | Bin 5264 -> 6632 bytes obj/main.o | Bin 1032 -> 1656 bytes obj/sort.o | Bin 3080 -> 4336 bytes obj/structures.o | Bin 3456 -> 6440 bytes srcs/charge.c | 59 ++++++++++++++++++++++------------------------ srcs/main.c | 8 +++---- srcs/sort.c | 53 ++++++++++++++++++++++++++--------------- srcs/structures.c | 21 ++++++++++------- 11 files changed, 93 insertions(+), 77 deletions(-) diff --git a/SAE2 b/SAE2 index abb0c725e1063c105e96967e39ca754824bfbcec..8605816051b6ff3c6fc454a01f2e6d36eaf80713 100755 GIT binary patch literal 22696 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 literal 35496 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 ZRh+w7{qJKge7NJG^>5b9Kp5xGe*=_SHB0~i diff --git a/files/devis.txt b/files/devis.txt index 9d13031..0197698 100644 --- a/files/devis.txt +++ b/files/devis.txt @@ -24,6 +24,7 @@ comusolisme 10000 Structure Eiffage Construction Auvergne +12, avenue Joseph Girod – 63000 – Clermont-Ferrand 300000 40 20000 @@ -89,4 +90,4 @@ RéussiteFinale 18, Rue de la Réussite – 63300 – Thiers 120000 25 -15000 \ No newline at end of file +1500 \ No newline at end of file diff --git a/includes/charge.h b/includes/charge.h index eba0d0d..d79d854 100644 --- a/includes/charge.h +++ b/includes/charge.h @@ -4,39 +4,39 @@ // Chargements char *readAdress(FILE *flot); -Offre *initTabTravaux(void); -Offre *loadOffre(void); -Devis loadDevis(FILE *devisFile, Offre tabTravaux[]); -Tache **loadTaches(Offre *tabTravaux[]); +Offre **initTabTravaux(void); +Offre **loadOffre(void); +void loadDevis(FILE *devisFile, Offre **tabTravaux); +Tache **loadTaches(Offre **tabTravaux); Precedence *loadPrec(int *tmax, int *tlog); // Recherches et tri -int rechTravaux(char *travauxName, Offre tabTravaux[]); -void minTravaux(Offre *tabTravaux[]); +int rechTravaux(char *travauxName, Offre **tabTravaux); +void minTravaux(Offre **tabTravaux); void freeListeDevis(ListeDevis *ldevis); void fusionDevisElements(ListeDevis *R, int *tlogR, ListeDevis *S, int *tlogS, ListeDevis *mergedList, ListeDevis *last, int *k); void gestionElementsRestants(ListeDevis *mergedList, ListeDevis *last, ListeDevis *source, int *tlogSource, int *k); void fusionMaillonDevis(ListeDevis R, int tlogR, ListeDevis S, int tlogS, ListeDevis *T); -void triFusionListeDevis(ListeDevis *ldevis, int tlog); +void triFusionListeDevis(ListeDevis ldevis, int tlog); // Fonctions de base -int lenListeDevis(ListeDevis l); -int nombrePred(char travaux[], Precedence prec[], int tlog); +int lenListeDevis(ListeDevis l); +int nombrePred(char travaux[], Precedence prec[], int tlog); void displayDevis(Devis d); void displayOffre(Offre *o); void displayListeDevis(ListeDevis l); -Offre newOffre(char *travauxName); +Offre *newOffre(char *travauxName); Booleen emptyListe(ListeDevis l); Booleen emptyOffre(Offre *o); Liste newListe(void); Liste insertSucc(Liste l, char travaux[]); Liste lstSucc(char travaux[], Precedence prec[], int tlog); -ListeDevis delete(ListeDevis l); +ListeDevis del(ListeDevis l); ListeDevis insert(ListeDevis l, Devis d); ListeDevis newListeDevis(void); -int longueurMaxNomEntreprise(ListeDevis ldevis); -void afficherDevisEntreprise(Offre *tabTravaux); +int longueurMaxNomEntreprise(ListeDevis ldevis); +void afficherDevisEntreprise(Offre **tabTravaux); diff --git a/obj/charge.o b/obj/charge.o index 181886e93d7be8af29a27c2dd125f4d5458e1a10..071a33a8f77aef1464b92562fe010a453df19888 100644 GIT binary patch literal 6632 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 EKd0{56951J literal 5264 zcmb7IUrZdw8K2`IERY%#a7j#J&T$DGgnxEgl{m$!tm4M!CQ9xiKco+BIn`<|#Zg@;YV4@0`jCgi^}|x9Rr3;Ym9O;o z?aUs>f-QH%-fw>2_sz^V-+VJW%cuYO=YJn(%)wCTrxMQsRa|&bp29O=YE8P~XRMZs z{w8cJUJWrlPSHY9V%l^}5P+hL96C0##;w{4HA12ODu4rUZjuC*EJ0uuMNy+MJrF)A z1or-{e%=#)-Kw!#a-_b?3;K(MrhIBliHBbgg#C)*Jy@02;H$^JXF3e9_sgLJWY81-*P|l`%H1hktq(c zAx`lb+qN!a5S4q0fu?BdlN?AvycfsJ^n@U~Dhkp&{q+B+16b60Z`H zo#AAKw9|3hsAh$7o4nIgSgQ6EDykBn-5E4>roD8PC5<|?c^hr&ZEfn%rruMyGw7kd zxcvb~(rASJV8v~t*=FAe`(~T{66{-G|99B8+U#3k-)gh}VMWr|1^Zd&ZKK_0zYF&5 zHv65Ky$$TO*>}Od*Jl3_?DoLk3EXS5-vj%-HhW)X(%27s6@I;Fv)>Q<7uVYx zFR?;qc66nDJtarYJ)`-`_KCH%yO@8;Q^2|>i!%o@_alEu=bXx4SFvuz8E2-r$dakq z)|J&}mQ7=A5$`P4CYx_eWN95z&eoN*Q(3Wc;+*K$$^*&|(l0kBvQl7qKytHFH2%#h zo;xY%%=L7#_pydqquG;PZuDf`RqPaeoiyHqZ3VYouJ>dO=pe5nKd9}J@FS0WF_0gY zA2)>`R{xeiWRr%^<$f_o&3Wo~8Dl#z<}YWtPgYy0l6^_O{dsk@xilBFX?3uDWK*0O z%phLL9K{W}Se%hEMJLt>IZ3g*it$pVK6k97oTHG5F&1|$q!&jQq$<`=d&(X^hCO1& zdG?u=^z4aJoQ<{h+pzbnu@K7w4i)$yVobb>^ST2pS^GVflzc3?>}1I<*mXkJQNs#| z&D>70pQ(=w#$}G2>~bVzRt2m|$Qk(m{^DB;b@1;V_TbBB>*n2#+Vidk8Z##^A#d{a z+#b0i(;WVRJxTG)pq=|{?L5};JZoTu;>_U;;>P1wmUn#Kt&|_;9LxQBl)NjgA4ATS zomV8kikRShGS959u&xxNb?aE>2d$x*`zkHrCML;IY{-hVA@$SU%7hMDH!jCu?6w zGzQK+`2K3G+dY3z?3Z%6)a{;^&hS0ki9OpY*-6~V{u($!@)@CHBAp_>}VtyWk+LrTs0M&3~G*PcH#;x zW)8`?KjafSZ@ z?We`1Ht_)cUEI@MjCJ1xwgGPd8yWNFILbj_E98FQ^T076uDagi9Ayu%1M)90&Q9Rx zK;k!n)Gi04cGrOoXt%&oz6{(2`6b}jAiu~_o&zF|-U}S%4q!X%Bw!ct3(WT^;0@po z;58tP^A3>4Nda*s_g>~GCxGP7aUj`^0Lg9`h?~6E%TewFlHGkoxEc64kmhp>NbNoV zlE2r0N1ABlIKhI^wI>%DWRVe`U^k_`g0uRDWM+|`r|;P zjQ1Ev*(3CQLjODvOYOy3PAG2`dM5Puk?vS3FTE^)avn(j-2#$-p8yeJ?@f;K2ST3$ zlKwIfA@W}0C?|l_J_scJ1P~$d`Z>zOK#JpGAg#+mAYAc!ILe5v89(~aqPQV<2~VVe zG=+q~F@YX|E`b2k?n4-F!DAKrP}>4Wtnc67kRJRw1eeM$1m7+Aj|KmZ;HLy15`0wf zBZ40hd_-_MpQ!&)!P^8^1%E>Dkl-H+o)P?-;J+69O~F4F{0+hXDELXi|1J24;0;JB zDhCAb61+!nMer8Ee=hjDf?M(WDRC^c^}SEu;`NYOWxwFo`Ad01dh5Jh72G;MhXl9I z+uvCnF{3hpr>uMSsg1v3r2**>ZpXWz&q|(-?8y?HvW~3(=wI!H)i8Z327m9>I_qKO`Q-I8>Y}*W~6k{As)pGohjOM0KelW zwOEuX!HCa)kS-g%I^x4cAYs`P); o5|t|bFIb{drGJklLM0ZO+HKMPQVkU-`b&znnyKh3Df$@uA3+nc-2eap diff --git a/obj/main.o b/obj/main.o index 689e6e0a73fb2a5f996220ca83e742a41e8daa00..164a57ff4858a5eb93b397bcdf796c5efaa7f511 100644 GIT binary patch literal 1656 zcmbu9&ubGw6vy8t+Nez>N)Ls4SP-OwS+W5|dT8^*O%{o!XmSt_$t2m3U^XecTS*1= z5D-cbJbKKZ;mw0c^&t392!bB!Jy74<%p}XWx!7-*d2c@R-ptNpCa;ZBA)+WCq`(d= zMuGwiqYFRdyBUbXDpbv*ALi(H;wLfl$T&GRrsV!gj*Y4L-h8|M*`FC3C#Le<9AnI} zAN%nVa^D*nQ)TpW8hiE4q$ocBfzrNyf?__ut!~}38eP^`^^}&@^yHnJ+*8x3w4T!S z6s%J?N_p`Jlwm^IjK?m#!-HHyMvYXbE_*rgCX!!Ui9E#!0^y<>oP$57VYAWD3IRm% z7p5q#6s9PwgkfAIwuGPmhtmEI~d{?aFIF` zRgiAX^mL}%1X09Su?fCQ5JfzWP4Fr~6mhDJ;41p02ygy?I?X+_J=Q?$IWyZ4o@4cx z=2=4zv=;LiXbsl|tvRr5tBaFK Bm=^#5 literal 1032 zcmb7D&ubG=5T3YAlO|Fv6n`CTJqRrrvAwhig+i-%2q@Y^y*PwsQx}p=+TH$;BBW<~ zXrPCJpgAV~1LoF+y?7Hnh?j!iLcx0?#Pplpx9ui9Iq)${BE)zuv zCc^;G5N8~K-2`U6tS2uFO%?g6Y62ZYT%f5uv#oF2N`RP`9xX4O>%eoABmFMHcQ8mF zY^*F481sr{uN&s73iS7LR9t$99R`jsz23_82>ptMQf9^G4Rgydv&`wmaQ=%DBz;kC^H~!u8^ZH8EcK;|lx4Xr3-MV#qQEJ-Vx?t0e{2A-8 z(-Ep(F6sKHZ$ktX2G$qpi!9bkBEDoGQqhMXitXBmD8mIQi@)#ObCR>$g!$*dz2}_Y z_xrx{{W~|MZ|b4$22EpfXzWE+-ARBI0Go`O-smZlXt<%5V zDVJwvDoJxHPMM&xA=5sXE^*Tq9f5V#Ey_p9NKKYl@(1o^mKMic}(IXcItJT3AS4po|D;$bduij%il`dAr2-tw+I#C07(MhY?( z8JZ(QXt2kxw^!1`8*t8$a-z**x3Zfr>^7C!MIp~}Z;m-ju7->R903Z~XxOKk3`;Yt z-l;aj>hxkyJp(SH;@aqX=QJSMppWtcf|p#@Xu+ijZ7OqV8}^6=CA{)8RmHGh zDLI9qR6Z;3B2tNz_U4hw-159*j~`eoW^@Z3UvP3v&hVJAUmr6-_{O~!YN$!T(Y|-g zPW`wx+!KeYG3R8=IT>@MoH&E0p!G@sy*r~sj=+P|Lss%TY9S}=jDZgk&tz6F(wx;- zX$qx#OQAH{G~Jsw(rCCew9@FT)M}HFo?Ja$>D|FRpU*M8U>iiF2}9RdG- zf5*OO_K1~le_(${pra!|XVci>Oia7j&$J6(ZD;eQrWt%m9sy1djW6icxy}1_Lsv^< z!yFin?0Ld5o(8`n_XIQ|knYPQ#5hW?ihd8*_W^o?aEzB!eLdyzbaE5S2ia9TH2$KO zv;j^-k(=S?ERYQ2b9zZm!)Fyge<2)Ww|b7}G3O9RwC+vR4ea;wIspJr&0l`PJ+g`>}X6(s2cn5H@BlUT$fl=*i+3Bf+ z_twGtfs_3|DB&2qS1^b1)UrPUocO^8EHHTQV7`c_7XLDE;@hG$ypMprFYqZ*8s0m= zt_l30C=Kr!U@Sf!OZbOb%p5*@G8R4`PF`SxM?!svIzxkf-Q6ejlY=Ka4~6tW7Ei>6 zqvu#OGA4OvBJp#h;fcPHk(kNOn4|1mG7)Fkn4w5KVIDTmN1QDiNya1NV;s;&&8RsB zUNk&9IzG%^Gvf)!B;1c}n8c1sZ#V*$qsbDnNH;g6n3s2v!rh8zjsCL3n5Nh;-1xhq z9)#1Mw32^S!M7>+M*^p^Q0gTAn!;~Y@ShZ1wZBW$mCn6S;a^s8)&Fl5{C&T?pnM8&8=2BS#1J;RX!94g#r}X9q`O z;ixH&{oj)h7N|wtU)CTn8bdCDXlF-=_f9-iyC5EQWVSfFf>59>E#;TJO^}}uxce97 z1J}8N&TYsw&3o~X&Ht)T-+l5+?ImoPJm38b<&OV=&<~K3GCmRhw<{PerM{dGDVR#V z@ekuaE%e>~FG_uRkT5RuFVCXirCRm7+Uzhs7DTEa=}LWBKQiw=n^YD>;@X9fzGa*7 kxb+Eh*A5V4qJJ`cQ+>I@;or_$`iA)bM7XNTS8n~k0hB`(@&Et; literal 3080 zcmb7GUuauZ82@hXvfj3KS#2RM+nS1lwGY9mpgvd#rj;m@$>@U*b=Q!kHZ1MhCY>8q zh~%Z>Q$SEqNZdNftq8&%Y-G?vAMAXwQE=c>`p0rJ@j=`}BEBp2j`PM5N-co*z;)h9Rk^ zBsbS#r;hcxcE>I(m1%9}zWR7?zJ;{9>R@lL3NXax{}-oWI+JUsbGm`g6q z|2yisR;`oQhU8$c2-f#a*)7n0QZ66~X({^jtnH#FGZA#Lwy*dCI$*}NyuEMd*(2!A2-P}<Kss%L> z&o59*H`Be9TY7J0+e6jgx~aN@+7kAnK41f4f;fMl^|qmQ%BUL^o4kIhLBF3BH6>z! z9EaNId7(r4LGUG?7W`EWYqnL?7-HQo{b8TkUkm5<^SP)S&*kc{k1wOgv*eYIej@&OJ)&t<}(^dva zOAYq909~m;kq@?m<-o&dC|y42Eu+_@UtR21Uev&_RZq)WZ|-r_I_G8+x!6KXwo!k= z2F`g?PUep~b*k#c;QB@kLi=LCF|~DCWSf|m2)bo`^?N?+05@tAZCzi?Jw-+C z$*(w0&rxv$F!&LVTU6XeY?srg zDqsFZ#T_5k!Bb0IFPpG)3vn*NhYjR>+vn7)!Z%SzTPGX)x%6A2$MfmYiiI`DxHcEE z>cJMLxA*rP>{R*6!%oo`h;<%4DDQ}AzQ4!i9eM$ET0blA__Kk6g}d)H^x{D058eUv zh`O^xfATj$^^@pN=e|=kqnU;?fs1-k_c4D%)-=_-=vTIjZDd`{FYOey2wTvjT{dj{ zRopiYPx%&Q%6wlU59}M~K8KoP-}w7e=I<50LEqKupYT2U0N*U8v0v;HzCl;+fX4gV z5z5q&C#Pm%3wSi}a1NSfbjXNaN6svq)sGyojkUQ(e}TR`IAIw4oY^zvzIxLfpqHSO z2Xe#X06ipM4WB!F2k6`U$iO)M2>L@QvF5NHkiRP*5A%1a;El!R|f7?7|}LIA;k2k;mK)%comoUPtz)4<)JtN42*uHqe%xQgG?5?AqN)hw^_ z3!4QFAjT;EnXcmdA#j#aBZEaVp52Gv-iLp%4<~aXHaRjAz80RnPUcKBGQNw9%_d@3 zCx@cfVu|5+bRs&LOpy6bG?B!v+PDZbEC>$w>)}{DE``WU&ct33O3ud;$*9mo=GaU$ v+KeZXGm(iYGA~Et(PR`bmY9l%Z(JAyqr(jw!_XR`cyeOu8S#G(Ziw+O1ol7S diff --git a/obj/structures.o b/obj/structures.o index 9e36f24ec98fc0d004e69f4545a0d297ba70ef6c..614a21b34e6ec979e7cc2ddd939b9b6b341ea668 100644 GIT binary patch literal 6440 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 diff --git a/srcs/charge.c b/srcs/charge.c index c31ceb5..b72173c 100644 --- a/srcs/charge.c +++ b/srcs/charge.c @@ -3,11 +3,11 @@ // l'initialisation est temporaire, je ne savais pas comment tu voulais la faire // initialisation des travaux -Offre *initTabTravaux(void) +Offre **initTabTravaux(void) { - Offre *tabTravaux; + Offre **tabTravaux; - tabTravaux = (Offre *)malloc(TMAXTRAV* sizeof(Offre)); + tabTravaux = (Offre **)malloc(TMAXTRAV* sizeof(Offre *)); if (!tabTravaux) { printf("\033[0;31mErreur: \033[0mmalloc tableau tabTravaux\n"); @@ -24,7 +24,7 @@ Offre *initTabTravaux(void) tabTravaux[6] = newOffre("Sols"); tabTravaux[7] = newOffre("Structure"); - return (tabTravaux); + return tabTravaux; } /*---------------devis---------------*/ @@ -32,39 +32,38 @@ Offre *initTabTravaux(void) // Chargement d'une chaine de caracteres depuis un fichier char *readFromFile(FILE *file) { - char *str; - char *buf; - int len = 0; - int size = 5; - int add = 5; - - str = malloc(size); - if (!str) + char *str, *buf, s[6]; + int i=0, tmax = 5; + str = (char *)malloc(tmax*sizeof(char)); + if (str == NULL) + { + printf("\033[0;31mErreur: \033[0mmalloc readFromFile"); exit(1); - - while (str[len] != '\n') + } + fgets(str, tmax, file); + while(str[strlen(str)-1]!='\n') { - len = strlen(str); - if (len >= size - 1) + if (i==tmax) { - size += add; - buf = realloc(str, size); - if (!buf) + tmax+=5; + buf=realloc(str, tmax*sizeof(char)); + if (buf==NULL) { + printf("\033[0;31mErreur: \033[0mrealloc readFromFile"); free(str); exit(1); } - str = buf; + fgets(s, 5, file); + strcat(str, s); } - fgets(str + len, size - len, file); - len = strlen(str) - 1; + printf("%s\n",str); + i++; } - str[len] = '\0'; - return (str); + return str; } // Chargement d'un devis depuis un fichier -Devis loadDevis(FILE *devisFile, Offre *tabTravaux) +void loadDevis(FILE *devisFile, Offre **tabTravaux) { int index; char *travaux; @@ -86,20 +85,18 @@ Devis loadDevis(FILE *devisFile, Offre *tabTravaux) d.adresse = readFromFile(devisFile); fscanf(devisFile, "%d\n%d\n%d%*c", &d.capital, &d.duree, &d.prix); nouveauMaillon->dev = d; - tabTravaux[index].ldevis = insert(tabTravaux[index].ldevis, d); - - return (d); + tabTravaux[index]->ldevis = insert(tabTravaux[index]->ldevis, d); } // Chagement des ofrres depuis le fichier devis.txt -Offre *loadOffre(void) +Offre **loadOffre(void) { - Offre *tabTravaux = initTabTravaux(); + Offre **tabTravaux = initTabTravaux(); FILE *devisFile; devisFile = fopen("files/devis.txt", "r"); - if (!devisFile) + if (!devisFile) //ERREUR exit(1); while (!feof(devisFile)) diff --git a/srcs/main.c b/srcs/main.c index 2c527f2..c9bfbaa 100644 --- a/srcs/main.c +++ b/srcs/main.c @@ -2,18 +2,16 @@ int main() { - Offre *tabTravaux; + Offre **tabTravaux; tabTravaux = loadOffre(); - for (int i = 0; i < TMAXTRAV; i++) { - triFusionListeDevis(&tabTravaux[i].ldevis, lenListeDevis(tabTravaux[i].ldevis)); - displayOffre(&tabTravaux[i]); + displayOffre(tabTravaux[i]); printf("\n"); } - afficherDevisEntreprise(tabTravaux); + minTravaux(tabTravaux); return 0; } diff --git a/srcs/sort.c b/srcs/sort.c index cc073db..2aa6daa 100644 --- a/srcs/sort.c +++ b/srcs/sort.c @@ -4,7 +4,7 @@ // Recherche d'une offre dans le tableau de travaux // Retourne l'indice de l'offre dans le tableau si elle est trouvée, sinon retourne -1 -int rechTravaux(char *travauxName, Offre *tabTravaux) +int rechTravaux(char *travauxName, Offre **tabTravaux) { //On utilise la taille max de travaux car travaux est un tableau constant, sa taille max est égale à sa taille logique. int deb=0, end=TMAXTRAV-1, mid; @@ -12,9 +12,9 @@ int rechTravaux(char *travauxName, Offre *tabTravaux) while(deb<=end) { mid = (deb+end) /2; - if (strcmp(travauxName, tabTravaux[mid].travaux)==0) + if (strcmp(travauxName, tabTravaux[mid]->travaux)==0) return mid; - if (strcmp(travauxName, tabTravaux[mid].travaux) < 0) + if (strcmp(travauxName, tabTravaux[mid]->travaux) < 0) end=mid-1; else deb=mid+1; @@ -29,27 +29,42 @@ int rechTravaux(char *travauxName, Offre *tabTravaux) void minTravaux(Offre *tabTravaux[]) { int i; - ListeDevis l, minl; - for (i=0; ildevis; - minl=l; - while(l) + md = tabTravaux[i]->ldevis; + minDev=md; + while(minDev->suiv != NULL) { - if(l->dev.prix < minl->dev.prix) + if ((md->dev).prix < (minDev->dev).prix) { - l=delete(minl); - minl=l; + s=minDev; + minDev=md; } - else - l=delete(l); - l=l->suiv; + else if ((md->dev).prix > (minDev->dev).prix) + s=md; + else + { + if ((md->dev).capital < (minDev->dev).capital) + { + s=minDev; + minDev=md; + } + else // On met else et pas else if car on ne peut pas garder 2 égaux, il faut qd même en supprimer un + s=md; + } + displayOffre(tabTravaux[i]); + md=md->suiv; + del(s); + printf("HELLO3\n"); } displayOffre(tabTravaux[i]); + } } + /*---------------tri------------------*/ //on la met dans struct.c ? @@ -141,13 +156,13 @@ void fusionMaillonDevis(ListeDevis R, int tlogR, ListeDevis S, int tlogS, ListeD } // Tri fusion sur une liste de devis -void triFusionListeDevis(ListeDevis *ldevis, int tlog) +void triFusionListeDevis(ListeDevis ldevis, int tlog) { ListeDevis p; ListeDevis q; ListeDevis qTemp; - p = *ldevis; + p = ldevis; q = p->suiv; if (tlog <= 1) return; @@ -159,8 +174,8 @@ void triFusionListeDevis(ListeDevis *ldevis, int tlog) qTemp = p->suiv; p->suiv = NULL; triFusionListeDevis(ldevis, tlog / 2); - triFusionListeDevis(&qTemp, tlog - tlog / 2); + triFusionListeDevis(qTemp, tlog - tlog / 2); ListeDevis mergedList = NULL; - fusionMaillonDevis(*ldevis, tlog / 2, qTemp, tlog - tlog / 2, &mergedList); - *ldevis = mergedList; + fusionMaillonDevis(ldevis, tlog / 2, qTemp, tlog - tlog / 2, &mergedList); + ldevis = mergedList; } diff --git a/srcs/structures.c b/srcs/structures.c index 507573e..02d652e 100644 --- a/srcs/structures.c +++ b/srcs/structures.c @@ -9,11 +9,12 @@ ListeDevis newListeDevis(void) } // Initialise une nouvelle offre -Offre newOffre(char *travauxName) +Offre *newOffre(char *travauxName) { - Offre o; - strcpy(o.travaux, travauxName); - o.ldevis=newListeDevis(); + Offre *o; + o = (Offre *)malloc(sizeof(Offre)); + strcpy(o->travaux, travauxName); + o->ldevis=newListeDevis(); return o; } @@ -74,7 +75,7 @@ Liste insertSucc(Liste l, char travaux[]) /*------------suppressions-------------*/ // Supprime le premier maillon de la liste de devis -ListeDevis delete(ListeDevis l) +ListeDevis del(ListeDevis l) { MaillonDevis *md; if (l==NULL) @@ -85,8 +86,12 @@ ListeDevis delete(ListeDevis l) if (l->suiv==NULL) return newListeDevis(); md=l; + printf("HELLO\n"); l=l->suiv; + free(md->dev.nomE); + free(md->dev.adresse); free(md); + printf("HELLO2\n"); return l; } @@ -170,7 +175,7 @@ void displayListeDevis(ListeDevis l) } // Fonction pour afficher le devis d'une entreprise donnée pour un type de travaux donné -void afficherDevisEntreprise(Offre *tabTravaux) +void afficherDevisEntreprise(Offre **tabTravaux) { int indiceTravaux; int maxlen; @@ -189,12 +194,12 @@ void afficherDevisEntreprise(Offre *tabTravaux) return; } - maxlen = lenMaxNomEntreprise(tabTravaux[indiceTravaux].ldevis); + maxlen = lenMaxNomEntreprise(tabTravaux[indiceTravaux]->ldevis); nomEntreprise = malloc((maxlen + 1) * sizeof(char)); printf("Saisir le nom de l'entreprise : "); fgets(nomEntreprise, maxlen + 1, stdin); - ListeDevis listeDevis = tabTravaux[indiceTravaux].ldevis; + ListeDevis listeDevis = tabTravaux[indiceTravaux]->ldevis; while (listeDevis) { if (strcmp(listeDevis->dev.nomE, nomEntreprise) == 0)