반응형

42cursus 17

42서울 본과정 후기 - 2020.12.21

(*일기쓰듯이 쓰는거라 의식의 흐름대로 쓴 글이 많습니다...ㅎ) 2020-12-21 2020-11-17 부터 2020-12-11 까지의 빡센 피신과정이 끝나고 정확히 7일 뒤 2020-12-18일에 합격 메일을 받았다. 😍 (원래는 피신을 하면서도 열심히 글을 업로드 할 생각이었지만.. 너무나 바쁜 일정 탓에 하나도 적지 못했다는....) 앞으로는 갈길이 멀어보이지만 본과정을 시작한다는 설레는 마음을 가지고 일주일만에 컴퓨터 앞에 앉았다. 블랙홀 기간 / 코알리숑 / Holy 그래프를 보니 본과정을 시작한다는 것이 실감났다. 레포트쓰는법, Makefile만드는 법을 공부하면서 차근차근 진도를 나갔고 오늘하루를 돌아보면 결론적으로는 1일차 학습레포트를 이쁘게 만드는데 가장 시간을 많이 들였지만 Makef..

[0 Circle] Libft - ft_lstiter, ft_lstmap

📌ft_lstiter 링크드리스트 전부의 content 변수에 함수 f를 적용시킴 void ft_lstiter(t_list *list, void (*f)(void *));➕ 매개변수 (Parameters) list : 리스트의 포인터 주소 f : 각 리스트에 적용시킬 함수 ➕ 반환값 (Return) void : 없음 ➕ 설명 (Description) ➕ 코드 (Code) #include "libft.h" void ft_lstiter(t_list *list, void (*f)(void *)) { while (list) { f(list->content); list = list->next; } }📌ft_lstmap 새로운 리스트를 만들어 링크드리스트 전부의 content 변수에 함수 f를 적용시킨 것을 저장하..

[0 Circle] Libft - ft_lstdelone, ft_strclear

📌ft_lstdelone 리스트의 content 를 del함수를 통해 삭제하고 그 리스트를 free시켜준다 void ft_lstdelone(t_list *list, void (*del)(void *));➕ 매개변수 (Parameters) list : 삭제할 리스트의 포인터 주소 del : content 를 삭제하는데 사용되는 함수 ➕ 반환값 (Return) void : 없음 ➕ 설명 (Description) ➕ 코드 (Code) #include "libft.h" void ft_lstdelone(t_list *list, void (*del)(void *)) { del(list->content); free(list); }📌ft_lstclear 리스트의 content 를 del함수를 통해 삭제하고 그 리스트 ..

[0 Circle] Libft - ft_lstsize, ft_lstadd_back

📌ft_lstsize 링크드리스트의 총 리스트의 개수 반환 int ft_lstsize(t_list *list);➕ 매개변수 (Parameters) list : 링트드리스트의 시작주소 ➕ 반환값 (Return) int : 리스트의 총 개수 ➕ 설명 (Description) ➕ 코드 (Code) #include "libft.h" int ft_lstsize(t_list *list) { int num; num = 0; while (list) { num++; list = list->next; } return (num); }📌ft_lstadd_back 리스트의 맨 뒷부분에 new라는 이름의 리스트를 넣는다 void ft_lstadd_back(t_list **list, t_list *new);➕ 매개변수 (Param..

[0 Circle] Libft - ft_lstnew, ft_lstadd_front

📌ft_lstnew 새로운 t_list 를 동적할당하고 content는 t_list의 content 변수에 저장하고 next 변수는 NULL 로 초기화한다 t_list *ft_lstnew(void *content);➕ 매개변수 (Parameters) content : 새로 만든 리스트에 채워넣을 content 변수의 값 ➕ 반환값 (Return) t_list : 새로 만든 리스트 ➕ 설명 (Description) 구조체도 동적할당을 시켜주어야 사용이 가능하다 ➕ 코드 (Code) #include "libft.h" t_list *ft_lstnew(void *content) { t_list *node; if (!(node = (t_list *)malloc(sizeof(t_list)))) return (0);..

[0 Circle] Libft - ft_putchar_fd, ft_putstr_fd, ft_putendl_fd, ft_putnbr_fd

📌ft_putchar_fd __문자 'c'를 주어진 파일디스크립터로 출력 __ ➕ 코드 (Code) #include "libft.h" void ft_putchar_fd(char c, int fd) { write(fd, &c, 1); }📌ft_putstr_fd __문자열 's'을 주어진 파일디스크립터로 출력 __ ➕ 코드 (Code) #include "libft.h" void ft_putstr_fd(char *s, int fd) { if (!s) return ; while (*s) { write(fd, s, 1); s++; } }📌ft_putendl_fd __문자열 's'을 주어진 파일디스크립터로 출력하고 newline으로 끝내기 __ ➕ 코드 (Code) #in..

[0 Circle] Libft - ft_itoa, ft_strmapi

📌ft_itoa 정수를 문자열로 변환 char *ft_itoa(int n);➕ 매개변수 (Parameters) n : 문자열로 변환할 정수 ➕ 반환값 (Return) char * : 변환된 문자열 주소 반환 ➕ 설명 (Description) 저는 처음에 이 함수를 재귀를 사용해서 코드를 짰더니 무리넷 검사에서 memleak 이 발생하였습니다. (그래서 배열을 이용하여 푸는 방법으로 수정하였습니다!) ➕ 코드 (Code) #include "libft.h" static char *ft_handle_zero(void) { char *ptr; if (!(ptr = (char *)ft_calloc(2, sizeof(char)))) return (NULL); ptr[0] = '0'; return (p..

[0 Circle] Libft - ft_strtrim, ft_split

📌ft_strtrim (왼쪽에서 set이 아닌 문자나오지 않는 부분)부터 (오른쪽에서 set이 아닌 문자가 나오지 않는 부분)까지의 문자열로 잘라는 함수 char *ft_strtrim(char const *s1, char const *set); ➕ 매개변수 (Parameters) s1 : 원본 문자열 set : 있으면 안되는 문자들을 가지고 있는 문자열 ➕ 반환값 (Return) char * : 부분 문자열 반환 ➕ 설명 (Description) ➕ 코드 (Code) #include "libft.h" char *ft_strtrim(char const *s1, char const *set) { size_t start; size_t end; size_t i; if (!s1) return (0); i = 0;..

[0 Circle] Libft - ft_calloc, ft_strdup

📌ft_calloc (size * count)의 크기만큼 malloc하고 모두 0으로 초기화 하는 함수 void *ft_calloc(size_t count, size_t size);➕ 매개변수 (Parameters) count : malloc할 크기 size : malloc 할 한칸의 사이즈 ➕ 반환값 (Return) void * : 0을 초기화한 주소반환 ➕ 설명 (Description) 다른 함수에서 ft_calloc을 통해서 공간을 초기화하다가 오류가 났어도 0을 반환할 뿐이지 return (0)으로 함수를 아예 끝내는 것이 아니기 때문에 return (ft_calloc); 을 해야한다 ➕ 코드 (Code) #include "libft.h" void *ft_calloc(size_t count, si..