profile
늅늅

Makefile

2022년 1월 18일
·
0개의 댓글
·

ft_lstmap

💻 함수명 >연결리스트 각 노드의 content에 f함수를 적용시켜 새 연결리스트를 생성하고 반환해주는 함수 📃 함수명 원형 > >### 🔩 parameters \*lst : f를 적용시켜 새 연결리스트를 만들 원본 연결리스트의 head \*f : content에 적용시킬 함수의 포인터 \*del : 삭제가 필요할때 사용할 함수의 포인터 >### 📬 return t_list \*형 반환 연결리스트 각 노드의 content에 f함수를 적용시켜 새 연결리스트를 생성하고 반환 🧨 주의사항 > - 새 연결리스트의 저장공간 할당에 실패했을경우 모든 데이터를 지우고 free 해주어야 함 하나의 노드를 새로 만들고 ftlstaddback을 사용해 마지막 노드에 새 노드를 연결해줌 마지막으로 더이상 필요하지않은 newnode를 NULL로 초기화해줌 lst가 NULL이면 다른 lst함수들은 오류가 발생하도록 했지만 이 함수는 NULL인 함수가 복사되

2022년 1월 18일
·
0개의 댓글
·

ft_lstiter

💻 ft_lstiter >연결리스트 전체를 순회하며 함수포인터로 받아온 함수f를 적용시키는 함수 📃 ft_lstiter 원형 > >### 🔩 parameters \*lst : 순회할 연결리스트의 head \*f : content에 적용시킬 함수의 포인터 >### 📬 return 없음 🧨 주의사항 >- 연결리스트를 순회하며 함수포인터 f로 받아온 함수 f를 content에 적용시켜줌 lst->next를 건들지않고 따로 t_list포인터를 이용해 순회해야함 ⌨ 코드

2022년 1월 18일
·
0개의 댓글
·

ft_lstclear

💻 ft_lstclear >연결리스트의 데이터를 없에고 free해주는 함수 📃 ft_lstclear 원형 > >### 🔩 parameters \\lst : 없에줄 연결리스트 \*del : 데이터를 삭제해줄 함수 포인터 >### 📬 return 없음 🧨 주의사항 >- lst == NULL은 연결리스트 자체가 없는것이고 *lst == NULL은 연결리스트에 노드가 없이 비어있다는 뜻 연결리스트를 모두 free해주고 난 뒤에 초기화해주지 않으면 없어진 저장공간을 가르키고있는 포인터가 쓰레기값때문에 오류를 발생시킬 수 있다(댕글링 포인터) ⌨ 코드

2022년 1월 18일
·
0개의 댓글
·

ft_lstdelone

💻 ft_lstdelone >하나의 노드 내부의 Content를 삭제하고 free해주는 함수 단 next의 데이터는 삭제하지않음 📃 ft_lstdelone 원형 > >### 🔩 parameters \*lst : 하나의 노드를 삭제할 연결리스트 \*del : 데이터를 삭제할 때 사용할 함수포인터 >### 📬 return 없음 🧨 주의사항 >- 현재 노드의 content를 del함수를 사용해 제거해주고 free해줌, 단 next의 메모리는 건들면안됨 ⌨ 코드

2022년 1월 18일
·
0개의 댓글
·

ft_lstadd_back

💻 ftlstaddback >연결리스트의 끝에 새로운 t_list를 추가해주는 함수 📃 ftlstaddback 원형 > >### 🔩 parameters \**lst : 끝에 새로운 t_list를 추가할 연결리스트 \*new : 연결리스트의 끝에 연결할 새로운 노드 >### 📬 return 없음 🧨 주의사항 > - \*lst가 NULL이라면 비어있는 연결리스트이기 때문에 첫 노드가 마지막 노드이므로 바로 새 노드를 추가해줌 반복문을 사용해 마지막 노드에 도달했을 때 현재 노드의 next를 새 노드로 연결시켜주면 됨 ⌨ 코드

2022년 1월 18일
·
0개의 댓글
·

ft_lstlast

💻 ft_lstlast >연결리스트의 마지막 노드의 포인터를 반환해주는 함수 📃 ft_lstlast 원형 > >### 🔩 parameters \*lst : 마지막 노드를 반환할 연결리스트 >### 📬 return t_list \*형 반환 연결리스트의 마지막 노드의 포인터를 반환 🧨 주의사항 > - lst가 NULL이라면 현재 노드가 비어있으므로 다음 노드가 없기때문에 현재 노드를 바로 반환 next가 NULL이라면 다음 노드가 없기때문에 현재 노드가 마지막 노드임 ⌨ 코드

2022년 1월 18일
·
0개의 댓글
·

ft_lstsize

💻 ft_lstsize >연결리스트에 있는 총 노드의 수(연결리스트의 길이)를 반환해주는 함수 📃 ft_lstsize 원형 > >### 🔩 parameters \*lst - 길이를 구할 연결리스트 >### 📬 return int형 반환 연결리스트에 있는 총 노드의 수(연결리스트의 길이)를 반환 🧨 주의사항 >t_list의 next를 사용해 더이상 다음 노드(\*lst == NULL)가 없을때까지 진행하며 길이를 확인 ⌨ 코드

2022년 1월 18일
·
0개의 댓글
·

ft_lstadd_front

💻 ftlstaddfront >연결리스트의 맨 앞에 새로운 t_list를 연결해주는 함수 📃 ftlstaddfront 원형 > >### 🔩 parameters \\lst : 맨 앞에 새로운 노드를 연결해줄 연결리스트 \*new : 새로 넣어줄 t_list노드 >### 📬 return 없음 🧨 주의사항 >- 새로운 노드의 next를 현재 연결리스트의 맨 앞 노드로 설정해준 뒤 새로운 노드를 연결리스트의 맨 앞으로 설정해주어야 함 lst가 NULL인 경우를 처리해 줄 수도 있지만 오류가 발생하여 null값이 들어갔다는것을 알기위해 처리해주지않았음 ⌨ 코드

2022년 1월 17일
·
0개의 댓글
·

ft_lstnew

💻 ft_lstnew >새로운 t_list 구조체를 생성하고 content를 전달한 뒤 저장하고 반환해주는 함수 📃 ft_lstnew 원형 > >### 🔩 parameters \*contest : 생성한 t_list에 저장할 정보 >### 📬 return t_list \*형 반환 새로운 t_list 구조체를 생성하고 content를 전달한 뒤 저장하고 반환 🧨 주의사항 >- t_list는 libft헤더에 정의했으며 \content에는 필요한 데이터, \next는 현재 노드의 다음 노드주소가 들어간다 ⌨ 코드

2022년 1월 17일
·
0개의 댓글
·

ft_putnbr_fd

💻 ftputnbrfd >int형 정수를 받아와 주어진fd와 write함수를 사용해 출력해주는 함수 📃 ftputnbrfd 원형 > >### 🔩 parameters n : 출력할 int형 정수 fd : 파일 디스크립터 >### 📬 return 없음 🧨 주의사항 > - write함수는 int형을 바로 출력할 수 없으므로 ascii코드를 활용해 출력해주어야함 ft_itoa를 사용하려했으나 malloc을 사용하면 안되므로 유사한 방식이지만 이번엔 재귀함수를 사용해 재구현 재귀함수를 통해 나중에 호출된 함수가 먼저 실행되는방식으로 하나씩 출력 int형의 min max를 잘 생각해서 구현해줘야함 ⌨ 코드

2022년 1월 16일
·
0개의 댓글
·

ft_putendl_fd

💻 ftputendlfd >문자열 s를 주어진 파일디스크립터와 write함수로 출력하고 줄바꿈을 출력해주는 함수 📃 ftputendlfd 원형 > >### 🔩 parameters \*s : 출력할 문자열 fd : 파일 디스크립터 >### 📬 return 없음 🧨 주의사항 >- 파일디스크립터는 음수가 나올 수 없으므로 처리해줌 write함수의 바이트수 부분을 ft_strlen함수를 사용해 s의 길이만큼 넣어줌 파일 디스크립터에 관한것은 ftputcharfd글을 참고 ⌨ 코드

2022년 1월 16일
·
0개의 댓글
·

ft_putstr_fd

💻 ftputstrfd >문자열 s를 주어진 파일디스크립터를 사용해 write함수로 출력해주는 함수 📃 ftputstrfd 원형 > >### 🔩 parameters \*s : 출력할 문자열 fd : 파일 디스크립터 >### 📬 return 없음 🧨 주의사항 > - 파일디스크립터는 음수가 나올 수 없으므로 처리해줌 write함수의 바이트수 부분을 ft_strlen함수를 사용해 s의 길이만큼 넣어줌 파일 디스크립터에 관한것은 ftputcharfd글을 참고 ⌨ 코드

2022년 1월 16일
·
0개의 댓글
·

ft_putchar_fd

💻 ftputcharfd > 문자 c, 파일디스크립터 fd를 사용해 write함수로 출력하는 함수 📃 ftputcharfd 원형 > >### 🔩 parameters c : 출력할 문자 c fd : 정수값으로 받아오는 파일 디스크립터 >### 📬 return 없음 🧨 주의사항 > - fd는 파일 디스크립터로 정수형으로 받아옴 >>- 프로세스가 특정 파일에 접근하기위한 추상적인 키로써 어떤 파일인지를 숫자로 구분함 >>- 음수가 될수없으며 0(표준출력), 1(표준입력), 2(표준에러)는 정해져있어 3부터 사용됨 write 함수를 사용해 출력하며 write(파일디스크립터, 문자열시작주소, 바이트수) 이다 fd는 음수가되면 안되므로 처리해준다 ⌨ 코드

2022년 1월 16일
·
0개의 댓글
·

ft_striteri

💻 ft_striteri >문자열 s를 순회하며 각 요소에 함수 f를 적용시키는 함수 📃 ft_striteri 원형 > >### 🔩 parameters \*s : 함수 f를 적용시킬 문자열 *f : 문자열 s에 적용할 함수의 함수포인터 >### 📬 return 없음 🧨 주의사항 >- 함수 f에는 현재 문자열 요소의 인덱스값과 주소값을 전달해줌 ⌨ 코드

2022년 1월 16일
·
0개의 댓글
·

ft_strmapi

💻 ft_strmapi >문자열 s의 각 요소에 함수 f를 적용시킨 결과를 새로운 저장공간을 할당하고 저장시켜 반환하는 함수 📃 ft_strmapi 원형 > >### 🔩 parameters \s : f함수를 적용시킬 문자열 \*f : 문자열 s에 적용시킬 함수 >### 📬 return char \*형 반환 문자열 s의 각 요소에 함수 f를 적용시킨 결과를 새로운 저장공간을 할당하고 저장시켜 반환 🧨 주의사항 >- \*f에는 ft_strmapi에서 사용할 수 있는 함수가 들어옴 malloc 할당 실패시 NULL가드 필요 f함수에는 문자열 s 현재 요소의 인덱스값, 그리고 문자열 s의 현재 요소가 들어감 ⌨ 코드

2022년 1월 16일
·
0개의 댓글
·

ft_itoa

💻 ft_itoa > int to ascii 즉 int형 변수를 문자열로 바꿔서 반환해주는 함수 📃 ft_itoa 원형 > >### 🔩 parameters n : 문자열로 변환해줄 int형 변수 >### 📬 return char \*형 반환 int형변수를 받아 문자열로 변환한 뒤 저장공간을 할당하고 저장하여 반환 🧨 주의사항 >- 문자열에서 숫자는 왼쪽부터 읽지만 int형에서 정보를 불러올때는 뒷자리부터 불러왔기때문에 문자열의 뒤에서부터 앞으로 데이터를 저장했음 부호도 중요하기때문에 -나 +처리를 해주어야 함 int형의 범위는 -2147483648 ~ 2147483647 인데 2147483648은 int범위를 초과하므로 long자료형을 사용해줌 n이 0일때에도 잘 생각해주어야 함 ⌨ 코드

2022년 1월 16일
·
0개의 댓글
·

ft_split

💻 ft_split >문자열 s를 c문자 기준으로 나누어 배열의 각 칸에 저장하고 마지막 배열은 NULL로 채워 반환해주는 함수 📃 ft_split 원형 > >### 🔩 parameters \*s : c를 기준으로 나눠줄 문자열 c : 문자열을 나누는 기준이 될 문자 >### 📬 return char \\형 반환 문자열 s를 c문자 기준으로 나누어 배열의 각 칸에 저장하고 마지막 배열은 NULL로 채워 반환 🧨 주의사항 >- 배열의 각 칸에 정보를 저장하다가 할당에 실패하여 함수를 종료할때 여태 malloc으로 할당했던 각 배열칸마다의 저장공간, 배열 자체의 저장공간을 모두 free시켜주어야 함. (메모리 누수 방지) 문자열의 첫 시작부분이 c라면 그부분을 넘겨주어야하고, 첫 시작부분이 c가 아니라면 만들어야하는 문자열의 수를 1 늘려주어야 한다 ⌨ 코드

2022년 1월 16일
·
0개의 댓글
·

ft_strtrim

💻 ft_strtrim >문자열 s1을 처음부터 순회하며 set문자열에 존재하지않는 문자가 나온 곳 부터 set문자열에 속한 문자가 나오지 않은곳까지를 잘라서 반환해주는 함수 ex) s1= "abc12312131def123", set= "abcdef" 이라면 반환값은 "12312131" 📃 ft_strtrim 원형 > >### 🔩 parameters \*s1 : 탐색할 문자열 \*set : 나누는 기준이 되는 문자열 >### 📬 return char \*형 반환 문자열을 잘라준 뒤 malloc으로 저장공간을 할당하고 그곳에 저장한 문자열의 포인터를 반환 🧨 주의사항 > - 문자열 s1에 set에 해당하는 문자가 없다면 \0이 들어있는 문자열의 저장공간을 할당해서 반환해줌, 이때 내가 만든 ft_substr은 s1의 크기보다 start값이 클때 \0이 있는 문자열의 저장공간을 반환해줌 반환될 문자열의 끝에는 \0을 넣어줘야함 ⌨ 코드

2022년 1월 15일
·
0개의 댓글
·

ft_strjoin

💻 ft_strjoin >s1과 s2를 합쳐서 반환해주는 함수 📃 ft_strjoin 원형 > >### 🔩 parameters \*s1 : 합칠 문자열 1 \*s2 : 합칠 문자열 2 >### 📬 return char \*형 반환 문자열을 합친 뒤 malloc으로 저장공간을 할당하고 저장시켜 반환해줌 🧨 주의사항 >- 합쳐진 문자열은 malloc을 사용하여 저장공간을 할당한 뒤 저장해주어야함 할당이 실패했을때 NULL가드를 해야함 합친 문자열의 끝에는 \0을 넣어주어야함 ⌨ 코드

2022년 1월 15일
·
0개의 댓글
·