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&#8*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