From 33b1147968b517178a2b934a207b2c77afe811bf Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Wed, 20 Nov 2019 21:03:51 +0100 Subject: [PATCH] correction pointeur liste null dans lstadd_back --- srcs/bonus/.ft_lstdelone.c.swp | Bin 0 -> 12288 bytes srcs/bonus/a.out | Bin 8616 -> 8704 bytes srcs/bonus/ft_lstadd_back.c | 2 +- srcs/bonus/ft_lstdelone.c | 99 +++++++++++++++++++++++++++++++++ srcs/bonus/lstdelone.c | 20 ------- 5 files changed, 100 insertions(+), 21 deletions(-) create mode 100644 srcs/bonus/.ft_lstdelone.c.swp create mode 100644 srcs/bonus/ft_lstdelone.c delete mode 100644 srcs/bonus/lstdelone.c diff --git a/srcs/bonus/.ft_lstdelone.c.swp b/srcs/bonus/.ft_lstdelone.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..d9d49e0afc7ffef73e52a4392e58312370b49cc4 GIT binary patch literal 12288 zcmeI2PiP!f9LHY^T1TxdDpaiKB&E&lG|47u#L(6dyok_xDV4^wtec%#GIlb%&Q5HT zP^AY!>`kdqi{Qb7H@$fB;9oqN3VIWyilXG=!HWvT&+pBj?8bCjOA#t>;IljLz2E!& ze((GK49m{!$TLqJwkL*171ws9e!TeYiRZ>QtJ)5w<`%;G{Gv3JU;e&$ygfQPJU%wu zj7v;kN*z|iV78f5J8`2^ooz)6ooX|wg`LFn!&c-EH%dI1CZm8+;D!`fNSZ?vTh+d? z(GlsttG~~_@7|*~dhqkvJsC}0#Y3K#{90-`|OQ|hzZm3saT3jF_{|Ng(S zO{rD*6~2bA;3Ie!&chpU9H!wgOu-n8z)rXg{aU@E)9lB{&H)@GMNjF))`= zz$jo8_%9SV!=)_V>ariVpFVo%&;ezwE3YeB&3{zHzVG0nLSL_>v82iJ{La5Xbi|Q)?uYMtBa|rll=}Es9 zxA$Q8GD)p=63+xD2+YkGccOE)K=$qp?1OeB!wfJO8kIINlQd;B*lvY))3e&HN}N-P zvEDJRbP=PXBn45kmRJGz%h>{P*QPN|9zS{x5hkr5S~{1tMCZkr&@*3f+HDdqG!na$ s?PS?2Qmq%DWx1IgY0zY`?R$RH?&vM{nC zug9R*u!jsGd|Ca{h=0H1s@gZLdR_Xa)$P*PxlumJ#nmf8PRd6Fq(tIMH^lJqVZybVDf3 z>P2PtRA)ZT7V1gejl0VaY{O62hOcc|KR%&$;V|cSEun{wDnO&dV)zK_{K;x znQulufQ01ugjpJBQde+#T*2#z36n;{KPATpne5Iw&xmNN6*VZ`#P9ttYmSoTJwAE~ z^qVd}w^Sh#NK8|bXBsmo_!Z)N%Goe}(OC9Bi|SYgQ3}UJ=?!L%OO6+)y@1-L70EFt zCB%tEXZM1yfmBW+32;V~w#13AdOVXUsd7n-BewJ^W3i`H3G!lD(7XeTMAEu?}5iGw~T z6*|`2hwv%06x|>P_Lr%>TC4g-=4UPXH6j?Q^j%aiTdI6RUN6L8$Yij)2HbxCpobwd zqTowV7+j+^l&)GvFQY1V^F8e?0_kJj@gU@B!}#oOAc|xURT8{cy3z>mLkw z!N)_)1Uw{)*;ayEyqu-LKUZ`)&W&?PB_m?y3CH?1GjN3p21wwgSzT(;##md#)j4Gs zWLU2XY%2ac+$UA+)MXN|*+MzXrL42K@5GmOVc#x{b65gMIkMoGhmT^B)^G? zu9?me8zo#R;b}Q{*_0skE?4UnQRcy=8zbvkjGhny%osgRfB}qnCh(zWS`H@6Il9G{ z=2W3FH{NoTn)zx$vAzu7uY2&k0(ihHox>A*Ksg z{~uNB3eZ8}CYhjbgbFJg=kr*E`FFY{oH=4K#?!Ijv~39SZZmH`X=|mt=qwrW4-bz8 zAO;h~c2C#%#NcSKA2T%CBvyvo^e15&=^F`*&%mYO$sjavpcdiWj`mGMv%j~utH&Q0 zf({On#lS(V1Q)dozgLU8-;qs|KHvgjlb3!Y4vYfcecX6Tl}7Hvm&Se@w~@1JbTFXK t0BqK@;0or5GfKDXxMt?9Svh+#x#)T5XdXSMPn~D!veQ8~oKBv>e*k$A0c`*P diff --git a/srcs/bonus/ft_lstadd_back.c b/srcs/bonus/ft_lstadd_back.c index 99117c2..2c7eec9 100644 --- a/srcs/bonus/ft_lstadd_back.c +++ b/srcs/bonus/ft_lstadd_back.c @@ -92,7 +92,7 @@ void ft_lstadd_back(t_list **alst, t_list *new) tmp = tmp->next; tmp->next = new; } - new->content = NULL; + new->next = NULL; } } diff --git a/srcs/bonus/ft_lstdelone.c b/srcs/bonus/ft_lstdelone.c new file mode 100644 index 0000000..a86635b --- /dev/null +++ b/srcs/bonus/ft_lstdelone.c @@ -0,0 +1,99 @@ + + #include + + typedef struct s_list + { + void *content; + struct s_list *next; + } t_list; + + void *ft_memcpy(void *dst, const void *src, size_t n) + { + size_t i; + char *ptr; + char *ptr2; + + ptr = (char *)dst; + ptr2 = (char *)src; + i = -1; + while (++i < n) + ptr[i] = ptr2[i]; + return (dst); + } + + t_list *ft_lstnew(void *content) + { + t_list *lst; + + if (!(lst = (t_list *)malloc(sizeof(*lst)))) + return (NULL); + if (!content) + lst->content = NULL; + else + { + if (!(lst->content = malloc(sizeof(content)))) + return (NULL); + ft_memcpy(lst->content, content, sizeof(content)); + } + lst->next = NULL; + return (lst); + } + + void ft_lstadd_back(t_list **alst, t_list *new) + { + t_list *tmp; + + if (alst) + { + tmp = *alst; + if (!tmp) + *alst = new; + else + { + while (tmp->next) + tmp = tmp->next; + tmp->next = new; + } + new->next = NULL; + } + } + + void ft_lstdelone(t_list *lst, void (*del)(void *)); + + int main(void) + { + char tresor; + char matos; + char friends; + t_list *toto; + t_list *tmp; + + tresor = 'a'; + matos = 'b'; + friends = 'c'; + toto = ft_lstnew(&tresor); + printf("toto->data :%c\n",*(char*)(toto->content)); + tmp = ft_lstnew(&matos); + ft_lstadd_back(&toto, tmp); + printf("----------------------\n"); + printf("toto->data :%c\n",*(char*)(toto->content)); + printf("toto->nxt->data :%c\n",*(char*)(toto->next->content)); + tmp = ft_lstnew(&friends); + ft_lstadd_back(&toto, tmp); + printf("----------------------\n"); + printf("toto->data :%c\n",*(char*)(toto->content)); + printf("toto->nxt->data :%c\n",*(char*)(toto->next->content)); + printf("toto->nxt->nxt->data:%c\n",*(char*)(toto->next->next->content)); + printf("toto->nxt->nxt->nxt :%s\n",(char*)(toto->next->next->next)); + return (0); + } + + +//#include "libft.h" + +void ft_lstdelone(t_list *lst, void (*del)(void *)) +{ + del(lst->content); + free(lst); + lst = NULL; +} diff --git a/srcs/bonus/lstdelone.c b/srcs/bonus/lstdelone.c deleted file mode 100644 index e2b85c2..0000000 --- a/srcs/bonus/lstdelone.c +++ /dev/null @@ -1,20 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstdelone.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: hulamy +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2018/11/14 21:10:59 by hulamy #+# #+# */ -/* Updated: 2018/11/16 13:59:22 by hulamy ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_lstdelone(t_list **alst, void (*del)(void *, size_t)) -{ - del((*alst)->content, (*alst)->content_size); - free(*alst); - *alst = NULL; -}