Libft 과제 시 유의점 (테스터기, protected, Makefile)
·
IT/42Seoul
libft나 다른 하위 서클 함수들은 주로 어떤 정해진 것을 구현하는 문제인 경우가 많다. 따라서 깃허브에 libft 과제를 뮬리넷(42채점 서버)처럼 테스트 할 수 있는 테스터기가 있다. 이 테스터기들을 통해 미처 하지 못한 예외처리나 필수사항의 구현을 체크하여 코드를 보완할 수 있다. 아주 중요하다. * 테스터기 - 내가 주로 쓴 테스터기는 4가지가 있다. 1) Libftest 2) libft-unit-test 3) libft-war-machine 4) libftester 깃허브에 쳐보면 이 외의 더 많은 테스터기들도 다 나온다. 기본적인 사용법은 이렇다. 일단 해당 깃 레포지터리를 깃클론 받는다. 그다음 libft-unit-test와 libftester에서는 그 안의 Makefile에 있는 평가할 ..
malloc/calloc 관련 정리
·
IT/42Seoul
42seoul에서 libft 과제의 동료평가를 진행하다보니, 고수분들께 평가받으며 내가 몰랐던 개념의 허점에 대해 많이 알게 되었다. 그에 대하여 정리하여 스스로 개념을 보완해보려 한다. * malloc : 메모리를 할당 1) 프로토타입 #include void *malloc(size_t size); 2) 인자들 size : 메모리 블록의 크기(바이트 단위) 3) 리턴값 메모리 할당에 성공했을 경우 : 할당한 메모리 블록을 가르키는 포인터를 리턴 (해당 포인터의 타입은 언제나 (void *)형이므로, 사용자가 원하는 타입으로 캐스팅 해줘야 함) 매모리 할당에 실패했을 경우 : 널 포인터를 리턴 주소값을 반환받기 떄문에, 할당된 힙 메모리 영역에 접근하려면 포인터를 사용해야한다. 사용 후 반드시 free(..
[Libft] C 언어 라이브러리 구현_BONUS_보너스 함수 구현2
·
IT/42Seoul
혹시나 문제가 된다면 바로 비공개 처리하겠습니다. 지적이나 댓글 환영합니다! 이번 포스팅에서는 보너스 파트의 함수를 이어서 구현해보았다. 보너스 파트는 연결리스트(랑크드리스트)를 이용한 기본적인 기능을 구현한 함수들을 구현하였다. 이후에도 많이 사용하게 될 것 같다. 참고로, 내가 정의한 libft.h 헤더에는 와 가 include 되어있다. 따라서 libft.h를 호출하면, 따로 정의하지 않고도 에 정의된 size_t 타입과 의 malloc/free를 사용할 수 있다. 또한 에 있는 write 함수 또한 사용할 수 있다. 또한 t_list 구조체도 정의하여, 보너스 함수 구현에 이를 사용하였다. (1) ft_lstdelone : 주어진 노드를 삭제 - 구현 코드 예시 : 1 2 3 4 5 6 7 8 #..
[Libft] C 언어 라이브러리 구현_BONUS_보너스 함수 구현1
·
IT/42Seoul
혹시나 문제가 된다면 바로 비공개 처리하겠습니다. 지적이나 댓글 환영합니다! 이번 포스팅에서는 보너스 파트의 함수를 구현해보았다. 보너스 파트는 연결리스트(랑크드리스트)를 이용한 기본적인 기능을 구현한 함수들을 구현하였다. 이후에도 많이 사용하게 될 것 같다. 참고로, 내가 정의한 libft.h 헤더에는 와 가 include 되어있다. 따라서 libft.h를 호출하면, 따로 정의하지 않고도 에 정의된 size_t 타입과 의 malloc/free를 사용할 수 있다. 또한 에 있는 write 함수 또한 사용할 수 있다. 또한 t_list 구조체가 정의되어 있어 보너스 함수 구현에 이를 사용하였다. * 연결리스트란 무엇인가? 위키 백과의 정의 : 연결 리스트, 링크드 리스트(linked list)는 각 노드가..
[Libft] C 언어 라이브러리 구현_Part2_추가함수 구현3
·
IT/42Seoul
혹시나 문제가 된다면 바로 비공개 처리하겠습니다. 지적이나 댓글 환영합니다! 이번 포스팅에서는 이어서 part2의 함수를 구현해 보겠다. file descripter를 매개변수로 받아 write()를 사용하는 함수 4가지를 구현하였다. 주의사항이라고 적은 사항들이 대부분 내가 실수했으나 고쳐서 어떻게 해결했는 지에 대한 내용들이다. 참고로, 내가 정의한 libft.h 헤더에는 와 가 include 되어있다. 따라서 libft.h를 호출하면, 따로 정의하지 않고도 에 정의된 size_t 타입과 의 malloc/free를 사용할 수 있다. 또한 에 있는 write 함수 또한 사용할 수 있다. * fd (File descripter)란 무엇인가? 1) 시스템으로부터 할당 받은 파일을 대표하는 0이 아닌 정수 ..
[Libft] C 언어 라이브러리 구현_Part2_추가함수 구현2
·
IT/42Seoul
혹시나 문제가 된다면 바로 비공개 처리하겠습니다. 지적이나 댓글 환영합니다! 이번 포스팅에서는 이어서 문자열 관련 함수들을 구현해보겠다. 소개할 함수 3개의 공통점은 모두 동적할당(malloc)을 사용하여 편집된 문자열을 새로 만드는 것이다. 이번 함수들은 메뉴얼이 이미 과제 페이지에 영어로 상세히 적혀있는 대신, 전보다 구현이 복잡한 특징을 가졌다. 따라서 이번 시간에는 함수의 역할 대한 정리보다는 함수를 어떤 방식으로 구현했는지, 구현에서 어떤 문제들을 마주쳤고 이를 어떻게 해결했는 지 위주로 설명하겠다. (면접용 연습) 주의사항이라고 적은 사항들이 대부분 내가 실수했으나 고쳐서 어떻게 해결했는 지에 대한 내용들이다. 참고로, 내가 정의한 libft.h 헤더에는 와 가 include 되어있다. 따라서..