From 6d0a02da9256bf473ecea0a68f6072f157c0ac4b Mon Sep 17 00:00:00 2001 From: LucasCodeur Date: Sun, 29 Mar 2026 16:35:07 +0200 Subject: [PATCH] FEAT: works and no leaks --- .../index/check_input.c.D27AA41095D26EB5.idx | Bin 614 -> 712 bytes .../clangd/index/game.c.B03695838049B596.idx | Bin 1088 -> 1102 bytes .../clangd/index/main.c.449FC24725B4900F.idx | Bin 704 -> 898 bytes .../index/vector.c.CCEA61708CF10975.idx | Bin 2902 -> 2980 bytes .../clangd/index/alcu.h.FC2EE915F1165072.idx | Bin 822 -> 946 bytes src/check_input.c | 2 +- src/fill_vector.c | 2 +- src/main.c | 5 +- src/vector.c | 65 +++++++++--------- 9 files changed, 37 insertions(+), 37 deletions(-) diff --git a/.cache/clangd/index/check_input.c.D27AA41095D26EB5.idx b/.cache/clangd/index/check_input.c.D27AA41095D26EB5.idx index 1710bd224379fe499bd44c32d456116e0303dbca..426188afb95a8990eb58df0803dd9a52d7e7aa06 100644 GIT binary patch literal 712 zcmWIYbaOkv#K7R3;#rZKT9U}Zz`!5^#Kk2=nJkP93>$!Q6?4`G8Ri`};JMPSa!r!E zHF;q}9U8`8g@ z&CFH}y|}eLSPf%OWQpjn1#?G^4^6|y; znv9$JlmB1675iA~J4@)VBIe!4EMDGYR6mp~{b*&1`ZKo_{fM+K%f@LYfBT$*{+RLd zPFa%f`7CwYS-xEYj2Cm_W-1!kGXL3ay&~~?A&chsxg5J+_Fd`iE_GLaYIeVt#@MI~XTZMuKfzUz~?ITMeFGLNz#Of`>)Dz~ZtjCcEN(FYFaZ=p;wA}VYu zyfD2$p0tV*j0d9`rBK{;di#!e8NW*9J}_uOCPs_#(-6xQI>;Dy;FTYIkH z$*i+mfWk5yGCVM09rKRQ`GU*#0)=ITWffpnF%+fdB!biw7bO?R18GK)Ma<>Ct7865 zVHXw@5)~5{U=V|u!N36b4+DcJLR1{VgnOTXK?or#j9@0`rsM!apMi&$kCmN`g^8Ji Klbef?mjM8#O55K6 literal 614 zcmWIYbaRViVqkDi@vO*AElFfyU|BwlP!+V>Nxx4vhg}Y1FyL~vtt~zC(cQTi%q(+nqMNOuS?uLeS3kM(DKt?wzlot zJh#^Abvb>>3DX(t zj$hOkI`~fPOx%x#iu<>;A0A4*@XfZlB6YW&TF%4booC%u>$7W4Z!>$V>U+Xsve?bY zcaeI*-hbG`zV@2$C~e}GnZ4DlxH30M9_VM+`-k^$`s)_P!@$SDASlEl#1AHbG7wOd znpV6M$ZX&VFcf!K>dGV|D9Iry3ezSdsLH7-2IJj6Tl9g$`CBMZks_NSFH9K7lU7uM z@nAHg6pBs8vim;&5OUnYEF-AEqaXlNB_pWBt;CPuDKjav!FaN@=L(+8I=h95M^J)8 zf(Pbg9zkgVX;8dEKv8N=B8XL7lw9l%q!|TQJ9fA+pUhHb72p>V7GV&Er~{Eg2qwY+ h27ZL70D_sEo00>P;pXLKVPj=x5@qM$;$-Au006#G%LV`d diff --git a/.cache/clangd/index/game.c.B03695838049B596.idx b/.cache/clangd/index/game.c.B03695838049B596.idx index 4c41481dc928d22bd0c8c9fef014e72b6840dec8..bdf0caba0120dbe8f78300a3115c3c7190aed8bc 100644 GIT binary patch delta 276 zcmX@WagKvE$kWZuZ6m8Mqh=~=DyOg{n>A}Yr~7vnLN5loIDJY3=Cr4 zJl(FQ1ys%VG=w!b?ws delta 262 zcmX@dae#w0$kWZuVk4_Bqh>N|GN-UKt28GACle!sv>>A}Yr~7vnLN5loIDJY3=CqP zJf318VsbTOw)tO128PSr7oN}9dY6q+N(`i#0SaKcn54j3V8SwDIZQc|Wtp6qqnV>8 zCox$H1~CWm!4%7gg)@gwUc=-g@fBpSgS!9V#AlbU$}Qvn~$LK(3lrXo1cSa#p% zA3}~>m}JDPS*$r8oGHy)@_g5I88KI8SN6%J%ofbS%)yg4Fk3Q5@rDs*5LKr M;(*iZ$mpSAD$ByP^gBd8~%rwCJRnf)Ydijb8f&{SPU zUASu3`-k^$`s)@36xL(a6Mz}A`2E4sMgN~vFp8j<&Hs@5-ucg_Ng+P5q7D15k-|$z} z50~<{S!O@Unj&Q7$S5PI$*2hzKD~WMyo}$a5=I_D9VH!InCivv50)D; zaV85XWj1BFw*PJ%E%M&d^MR(RF{w>%Wm4eRG4J@CFSu+k&?GH6E$zvo%=%o+f})A{ O^-_up8YlZPn*adl(L7)P diff --git a/.cache/clangd/index/vector.c.CCEA61708CF10975.idx b/.cache/clangd/index/vector.c.CCEA61708CF10975.idx index cf16e9d6bb5e9094b1321ef3c1804ac40559d5dc..9acc47860566ff87d75e52017c895a654bd65f29 100644 GIT binary patch literal 2980 zcmY*b3s6+o8NNT)*i5D&&`?H zo%@~tzyIU=|8xJdX>BMpn#OSz+tzlsG}8H8n2%GotHYN2pIIJo zM?N^M`{c#?j-%mAU#6s)*ObOzH--LuF~#oan-*%W_e>j3HNP9&dLi%h;k;ihjS6zz zv-j<}rrYZn;_iI?on4m(dY|^U{BmR0(#199{Dsg(d&&8tSLz;aTqQw%>4gWT*Pr~u z_S-)Rz5ef&AGDsm{di#J(V5uU9b=yc_b&B4qYe#7mxT2XCvZjzFNW(FG=+6w#G-==TbSY?k|V-UjO_Ym!x2y-RGt;D|nT%DucRs^S$3} ze7kTi86oU7dM#85;h-m&ogfK^mxW6cZgHeAQo>NQAX>ywQ(;p{f<4?>*jbX`0{1~- zACx4L#{-Zz081Gj0`m|k497u*llvVs5{&LdyUrO@>@T0 z9CdhYdW3yOpNifrOO}Jagm77Y**z@A3Ri`fp-OwDi=l`!;$aa-?NJv)&Gu#&qrS`6 zmCLB_2Xnug+Ci`nf{W&c@E{Zo!U~3CV2`QgWMC4noa(uAggz? z&}?I<)883n)$g)(c^T>he;?~>g!>__A55(F1K=8fT!sfh7zCRdXAeRl!!ZzIYWWbP z4XN$LL5zc)>BnJ7T-|GNSR04UOg;?GVaQ>49K><3)82de*shT&S9pnlu)$!kGWsQ> zWM||U^+pq;1B=+g2#^i3m6az`dQrD!QGO9=ai`Xq=-0>VuQa}@d1DRP&e7$Nk#cv@ z{Kzp>PbURCWoJ4K+qN*i=qq2GT2_8Mu;K^gqgfyqklA;4A-qCbL8b{s8>9^?wAs4Z z&1Bo8Z7SJQ(o-rl0)`Pt#CPV6Hy=_qoa;zJ*rjzPvO)L-aJ&G1N;-`cYzw25dYZWR ztKNS+y?i%GIzyWwQ!QFXlC*lHD%d5vR7uazTx#h~D0Po>z5Ng=KS%$YF;DTIjK2_YSV@xe$}&D!5Nke4^^@)40Gx?=s14!U()Ky zWCd5C3XwWc@ED*m5NZAj9*5L%KomQAKWe@D+=r9N2)D^?2{z{ss;?h%sC9&6kQ0Ld z#nimU`mNi7f*lrzD!}>c1bs!pwQ{YS9vX#AJTwdznrYth!J9h_FHMm+6s?k=jeHW< zl-*CgA$$;w2f;;yZ@ck5L!(*qF{zqc>o!tiyzlp%N5wxoOSV1fo_lBjjh}q;U4QrL z^JLqhbtGy`BO+X@Z#D`}m(w$;N!!BJhgxcDe5`){xxH;`d+GdxJpZ?_0ROILYEkPU s-Lt%8lucaXro?e3s>5+c_PDiW+hg<1qt}VrMX4#gW^tMhB@5jD0P9=W6951J literal 2902 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, j); i = -1; while (line[++i]) - if (!(line[i] >= '0' && line[i] <= '9') && line[i] != '\n') + if ((!(line[i] >= '0' && line[i] <= '9') && line[i] != '\n') || i > 5) return (false); if (ft_atoi(line) < 1 || ft_atoi(line) > 10000) return (false); diff --git a/src/fill_vector.c b/src/fill_vector.c index 13666f5..e8c830c 100644 --- a/src/fill_vector.c +++ b/src/fill_vector.c @@ -6,7 +6,7 @@ /* By: lud-adam +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2026/03/28 13:21:46 by lud-adam #+# #+# */ -/* Updated: 2026/03/29 14:58:09 by lud-adam ### ########.fr */ +/* Updated: 2026/03/29 16:31:19 by lud-adam ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/src/main.c b/src/main.c index 3ff6c79..1499304 100644 --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,7 @@ /* By: lud-adam +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2026/03/28 12:30:29 by lud-adam #+# #+# */ -/* Updated: 2026/03/29 14:58:10 by lud-adam ### ########.fr */ +/* Updated: 2026/03/29 16:31:17 by lud-adam ### ########.fr */ /* */ /* ************************************************************************** */ @@ -51,9 +51,6 @@ int main(int argc, char *argv[]) return (1); } - if (argc == 1) - fd = open("/dev/tty", O_RDONLY); - // // fd = get_fd(argc, argv); lines_int = fill_array(&lines, &size); if (!lines_int) { diff --git a/src/vector.c b/src/vector.c index ef4bc91..08769ee 100644 --- a/src/vector.c +++ b/src/vector.c @@ -13,26 +13,25 @@ #include "vector.h" #include "libft.h" #include +#include -int vectorResize(t_vector *v, int capacity); -int vectorPushBack(t_vector *v, void *item); -int vectorSet(t_vector *v, int index, void *item); -void *vectorGet(t_vector *v, int index); -int vectorDelete(t_vector *v, int index); -int vectorFree(t_vector *v); -int vectorTotal(t_vector *v); +int vector_resize(t_vector *v, int capacity); +int vector_push_back(t_vector *v, void *item); +int vector_set(t_vector *v, int index, void *item); +void *vector_get(t_vector *v, int index); +int vector_delete(t_vector *v, int index); +int vector_free(t_vector *v); +int vector_total(t_vector *v); void vector_init(t_vector *v) { - // Initialize function pointers - v->pfVectorTotal = vectorTotal; - v->pfVectorResize = vectorResize; - v->pfVectorAdd = vectorPushBack; - v->pfVectorSet = vectorSet; - v->pfVectorGet = vectorGet; - v->pfVectorFree = vectorFree; - v->pfVectorDelete = vectorDelete; - // Allocate memory and check for failure + v->pfVectorTotal = vector_total; + v->pfVectorResize = vector_resize; + v->pfVectorAdd = vector_push_back; + v->pfVectorSet = vector_set; + v->pfVectorGet = vector_get; + v->pfVectorFree = vector_free; + v->pfVectorDelete = vector_delete; v->vector_list.capacity = VECTOR_INIT_CAPACITY; v->vector_list.total = 0; v->vector_list.items = malloc(sizeof(void *) * v->vector_list.capacity); @@ -43,7 +42,7 @@ void vector_init(t_vector *v) } } -int vectorTotal(t_vector *v) +int vector_total(t_vector *v) { int totalCount = UNDEFINE; if(v) @@ -53,30 +52,34 @@ int vectorTotal(t_vector *v) return totalCount; } -int vectorResize(t_vector *v, int capacity) +int vector_resize(t_vector *v, int capacity) { int status = UNDEFINE; if(v) { - void **items = realloc(v->vector_list.items, sizeof(void *) * capacity); - if (items) + void **items_copy = malloc(sizeof(void *) * capacity); + if (!items_copy) + return (status); + ft_memcpy(items_copy, v->vector_list.items, sizeof(void *) * v->pfVectorTotal(v)); + if (items_copy) { - v->vector_list.items = items; + free(v->vector_list.items); + v->vector_list.items = items_copy; v->vector_list.capacity = capacity; status = SUCCESS; } } - return status; + return (status); } -int vectorPushBack(t_vector *v, void *item) +int vector_push_back(t_vector *v, void *item) { int status = UNDEFINE; if(v) { if (v->vector_list.capacity == v->vector_list.total) { - status = vectorResize(v, v->vector_list.capacity * 2); + status = vector_resize(v, v->vector_list.capacity * 2); if(status != UNDEFINE) { v->vector_list.items[v->vector_list.total++] = item; @@ -91,7 +94,7 @@ int vectorPushBack(t_vector *v, void *item) return status; } -int vectorSet(t_vector *v, int index, void *item) +int vector_set(t_vector *v, int index, void *item) { int status = UNDEFINE; if(v) @@ -105,7 +108,7 @@ int vectorSet(t_vector *v, int index, void *item) return status; } -void *vectorGet(t_vector *v, int index) +void *vector_get(t_vector *v, int index) { void *readData = NULL; if(v) @@ -118,7 +121,7 @@ void *vectorGet(t_vector *v, int index) return readData; } -int vectorDelete(t_vector *v, int index) +int vector_delete(t_vector *v, int index) { int status = UNDEFINE; int i = 0; @@ -135,17 +138,17 @@ int vectorDelete(t_vector *v, int index) v->vector_list.total--; if ((v->vector_list.total > 0) && ((v->vector_list.total) == (v->vector_list.capacity / 4))) { - vectorResize(v, v->vector_list.capacity / 2); + vector_resize(v, v->vector_list.capacity / 2); } status = SUCCESS; } return status; } -int vectorFree(t_vector *v) +int vector_free(t_vector *v) { - int status = UNDEFINE; - int total = v->pfVectorTotal(v); + int status = UNDEFINE; + int total = v->pfVectorTotal(v); if(v) { for (int i = 0; i < total; i++)