From 295ce68b8db6eeeedc4df230b8ed26b02bb70a6b Mon Sep 17 00:00:00 2001 From: Pedro Folloni Pesserl <fpesserl7@gmail.com> Date: Wed, 16 Nov 2022 00:49:33 -0300 Subject: [PATCH] sorting function works, no memory issues --- tp3/tp3 | Bin 24688 -> 24664 bytes tp3/tp3.c | 15 ++++++--------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/tp3/tp3 b/tp3/tp3 index 8c908ef36069626952979641e37e84ab8f2e98cf..232f8a669ec169f962b26057b9f585a81857f33c 100755 GIT binary patch delta 2125 zcmZ`)YfKbZ6ux(s3$wb&vba30%VQCIu`5so77C~f0|<h;0*VEqwluB9;-WDHX@U=y zl?FJrL2H{nlBQ{5`(xTDZPVZrwA7L&TA@ueDQ(xtk5!-|KBi}87K0|8ANM==obP<+ z%(-`Vy?yjXAMH$}6<v#OY8`Wl@;Jm`TF%Y?XUmn|dA8#b%f!Vc?R&U0{(H8q5t}q4 zfkA(32@yI1>lMiI7k374qqGXn8&**>JT$yYgJFA!t>u>B)(dXCM{vo2JI557o!icj z2Q8d-2(G_`*0E^8)$DOKj=JrmLXU9vmPT;(dtQ7jNrKBhCA2nAk;XY^<gRWLN=U!m zE8BNc+;%V0JLX@Mw@M8<<aT(4?Y{~gx@)Sl1<TPZf}02~uGQ|Pm}9e#HeKwuPoNaJ z{V6VJ%VeMK?RU_AUK&M)@I_R2Yahh|GgUD(py*$hyMCl0<WQf}HX~3ni+1jR(_KpL zw@)Og75h^A9BuW`bh|g`=vxxHn<q%np-mDDMTCRZm_Pw4jLEbH+{U<;riYTGjK}lA zBS~`E$K3WYY-P7PK(E^|hQslyH3G1PJXO^>r8+NR+B2*LSQ1%Y%)`^__l!*AzTZA2 zk4dR?dDihkcBqy!KZL^21o}HPgr?AP_&l^-w;FGT+E(l|WQOGxwm*=hJA$m~&hcxV zqK#3CO<b3Rj;vvRhTSUDVw6y+-z>&=PZ_o1U|6vx{<By@ayJ*auID-mT$8z*a$S!c zLdWuB=-#+)@ngJLyhjpWiaO^9LjgJ6(I;EJoRB0lN64Z{Nm`3|3b79HH^eqX_OB#; zfoMS-Ks=1-K^#Hk@nj3{OHv}@+lT^UKVlu?7-AdZ+9}LO>_i+u`~%U0Sc<R2`;jPe z0gXgILgM9tBDNvcAx=$;D`P@w%K{v*9xvwhyOLy+FQ|Q<{xG*D&|i~Gbpbq)<5u(^ zxF<<XXg`f}d*m>QMpr4uM=*ZmnfL)EF1ut6CvvjJC27fQPOT1piVdXsFdS>54tRiT zHAKXj==+c!XX37m!<M*(G!pisYbhMZwH$hJt%6}(kHG^Z^-Vyec_BA80U73nGzTip za%8{R#9f<&6X*(uUUNRp5o!Eso(f{`@)H~#gtCGV=;Qq0b*rA6G(xjAn;X=KKU&Xn zS!HY|Hu<Je?vxPar4Z@KB{*08UP2vu+2Xot^!spQR5x{cXYDRRE8&NfC_YaoJMYbh zn<<ekc}Xgx!k{qnR>|sI*CzdIgy#FJn>R@CD4sgCD2b;-<idm~=YdF1dQr}>cc&8> z&#GCTs?|5_Ak-Q-(+!HJDB=ceG~`2BJk3{Z2ehZgM@P(b)sRf+qC|C98nRTbm!Pw1 z;Fr`<!=!Hr!+2xlr-u_SS-;_6f7)ES3l61iq&gT*E2ce=kY0?x!j0+0+>LO!kiMB7 zg{X{;G!^PIUZO$pRfdH-9|kuwY_uDqY<3z8wKfZPH59sSNpv5awOME}+{M)dF_{)T z5^+Ojm4+S@zs~NYOP1|px^c#zV*buXMo+QKTo%Mz8RHAtoJOYom~l=PN;p4_1)6eS zsIoB*H?)xXA7(tpD`l3($;_3E=QCMECW4a%TxX^t#s-+tiAn}GhmT=Vn8)QST9~ep zRbFBIyG*Ome#B@I%Ul7IxkbT@FJb<?k#T$x^ZTCZ4vJ-~=TW)q+BH|1m|Ad<%2%y0 zUxPQ2mYApwVoHvzm>H+?5#Tu6@uM&hJ>C>$x<vWF(EP;bPle$UON1#@jV7r;7RXU9 zm<SNFJ`ATSW~}$8IK$l1u*ldjm9*Q(eGd;_t}qk{4W%z9-w0Rz>wMvJzHqUx#7tv@ zK0lrhSC+Km`ETJ*U-;;Aa(8_G9;ht~i!ev1Rh+(JPkhlJ=qk&XFAlD|AZ9}t?H1EF ylxr!2uB{fW5T)`3@$%Lq8rlYB)vM@Aa8+kReFcM`t8Mr%q^-&3?mM8cX3>9i{Du4g delta 2083 zcma)6ZA?>F7(VB=7fS&t#TMEk-zqZYOPoMatgLb=AA(R(kTFCyi8D@DWGoU)szRwG z;2Se_Y>U~Cu`JA(yM(zfL7kG#Y>qI6{gF79l<5{wVc^%@dwVZT{k8r$&wJkYInQ~{ zIdAW9AD!r<9dY!n&gHj!Pxuk<?*t!2%a}#+m-3a0?D*t;mt#LIy;m{VyI_4ge^BvT zK;Tj}AzXXFSzi&>rt-Bxm6UeDCG8rz6CP>bpv6!VY;N{&Zu=<b)^aWl=eA;GpTV%B z^3wgl@P~HJ^+yTkyc@^4nucBVLvHI3carNLRdBAWp42CTz`3j*&e`N4_3AH0TjOz* zkgL{FF}`CL^-gl_i@q19sP5s~!x%5mvys7!OX1%B0%e$^*F{4$gIv4+uhKfZhoe7m zZsapg>nKH4vvug;$5*XmxEUGm#sOoIEAKph6l0`8kS;huBe`()QB?fT2_5h%-Vje> zP!e*a&tZ|5Z2lihjy)9wCmN6p4LLnD-8ve0Y`1{vrZEzDq!1(Tk)4<0Dk@=eQ5vm< zcwGujfl6IWbKxUFkZxknV?l6P@4Bsb(a8qsPAA;<ySRA5<+V2=C1;*Xp2THRVn$-M z%qQe!exd`HRo0SO)94$MbO!#`8JV$%pw=&=??Z}y6%B#c^=<wP_KRff_AETsZ?xHF z1>p{dZf4x;mChMjZ}P^(bp_k%lxmKhEz+XAr6T1sjCbc5QT(xx0>zS=XhJMoa$Pqp z_FUJLrPShjZ0FinmSVajfB6&aHkIcB|I~O<c|5YKdH8`K#9^<LPN8qazYupJhD-}W zE20*wk<0OA!y52EoOK~O0OX+w-d{2Gx%Trh*{5mz9#A|6KUM!b$VfEb3y@E~>| zs+7b;ln+q=`=b_-LmWWdg_!n;e>qA|n<KH+G}wnVlY&qu_M>&7<|vaL;A3?v6cyBe z0iHh$)2UeNz9$F=F`nlzZ_n3Dv97!?2&bN_cg)uvSZ~65{Im6HfA}#vfVRL$bOb#C zvp9YPhL{L?1JYw681(}vj|r#c(1@wsa0<uw;5?39FoNR{%p!?QfiX6mSuq6}vElR( zY>O2ujj<7oZW>NwYAc+N&7p^Qx};Y{Tlw=VPcw|a63#Jt*qx+dR_mcDDGM|FcS-%s zT02{d4!d-sO+vh<L8M*rc&VBLgl^M_5!3marU559X|hY>sNO?pC495Wq_X*o$w(dC zT4ijuB}j~|S}()4MpS1yOEq<b=J`mIH%ZVKJ~>VDF6<2!HzvgU7>KlM0_C&^Y8}Xs z)i_BlNmhGBvv>baLX!jJy+rZVUU4ncSrq(%C~lTFD}}byC6S>?-a~BF?oT0f=~8J{ z6#SC7-!i{J27XQ*)2`NwJ_s4Xb`gJ{G5nRJFBoV{^P@d*B&~$z!$?{I9foD;1^7{} zPcL9X4RASq3%v%Wj1uaAy&3E1Cipxfkx_)gtqe0A1e4iHcR;l{ky#i5$IS_}7y8YK zv>hgKtb(Y_M0^r{bLMsh{e(Z8)j=1>H?V&9S)ZPpEbU=4H?V=Kbu6p0vFdu(_Y4GC zj6Qn8C>3j=&a&7qgJp0+ZLCiVbXvkSQF+MCWc8T{4pw~=E?7(|^@l9YV>27zwk0o! zQ59k>nDtTVRC%nwDxY7sVIdVw6lVX#LLbBOVY!DXw$2$_jsiPuydZ+sfp1|;^4tx1 zn;LJZ4Vzp`H2C=53nSh?3x;RpyaW0R#Y0XOh8SB-5@&AwR^})|`RGkP)X*#6ewj>Y z!&elwcYviRgwdFwyy#U!s6ndc%cP4ksU3bn5?=71MG1x%oB4N{bPbY=Lkz>RghQ5? zma99Vx;O+Mudz4>-?_gy$IxSxDAh8vLF`L(G{{G7F7u^UXsk%|ojX=5f3BiMfuH8| fsx>qh_ElxkP&kL<J1|+5r4HO8iIh|Lsx16pz)*?A diff --git a/tp3/tp3.c b/tp3/tp3.c index b9b2a1a..623481c 100644 --- a/tp3/tp3.c +++ b/tp3/tp3.c @@ -35,8 +35,8 @@ racional **aleatorio_vetor_racional(int tam) { } /* inverte dois ponteiros para racional */ -void inverte(racional *r1, racional *r2) { - racional temp = *r1; +void inverte(racional **r1, racional **r2) { + racional *temp = *r1; *r1 = *r2; *r2 = temp; } @@ -48,10 +48,8 @@ racional **ordenar_vetor_racional(racional **vet, int tam) { racional **ord; if ( !(ord = malloc(tam * sizeof(racional*))) ) return NULL; - int i; for (i = 0; i < tam; i++) { - *(ord + i) = criar_r(); *(ord + i) = *(vet + i); } @@ -60,12 +58,11 @@ racional **ordenar_vetor_racional(racional **vet, int tam) { swaps = 0; for (i = 0; i < tam-1; i++) { if (menor_r(*(ord + i+1), *(ord + i))) { - inverte(*(ord + i+1), *(ord + i)); + inverte((ord + i+1), (ord + i)); swaps++; } } } - return ord; } @@ -102,12 +99,12 @@ int main() { /* a funcao acima retorna NULL em caso de falha */ /* imprime o vetor ordenado */ - imprimir_vetor_racional(v, tam); imprimir_vetor_racional(w, tam); /* libera toda memoria alocada dinamicamente */ v = liberar_vetor_racional(v, tam); - w = liberar_vetor_racional(w, tam); + free(w); /* o vetor w pode ser liberado normalmente, porque os ponteiros que apontam para numeros */ + w = NULL; /* racionais ja foram liberados na chamada de liberar_vetor_racional para v. */ return 0; -} + -- GitLab