라이브러리

    malloc/calloc 관련 정리

    42seoul에서 libft 과제의 동료평가를 진행하다보니, 고수분들께 평가받으며 내가 몰랐던 개념의 허점에 대해 많이 알게 되었다. 그에 대하여 정리하여 스스로 개념을 보완해보려 한다. * malloc : 메모리를 할당 1) 프로토타입 #include void *malloc(size_t size); 2) 인자들 size : 메모리 블록의 크기(바이트 단위) 3) 리턴값 메모리 할당에 성공했을 경우 : 할당한 메모리 블록을 가르키는 포인터를 리턴 (해당 포인터의 타입은 언제나 (void *)형이므로, 사용자가 원하는 타입으로 캐스팅 해줘야 함) 매모리 할당에 실패했을 경우 : 널 포인터를 리턴 주소값을 반환받기 떄문에, 할당된 힙 메모리 영역에 접근하려면 포인터를 사용해야한다. 사용 후 반드시 free(..

    [Libft] C 언어 라이브러리 구현_Part2_추가함수 구현3

    [Libft] C 언어 라이브러리 구현_Part2_추가함수 구현3

    혹시나 문제가 된다면 바로 비공개 처리하겠습니다. 지적이나 댓글 환영합니다! 이번 포스팅에서는 이어서 part2의 함수를 구현해 보겠다. file descripter를 매개변수로 받아 write()를 사용하는 함수 4가지를 구현하였다. 주의사항이라고 적은 사항들이 대부분 내가 실수했으나 고쳐서 어떻게 해결했는 지에 대한 내용들이다. 참고로, 내가 정의한 libft.h 헤더에는 와 가 include 되어있다. 따라서 libft.h를 호출하면, 따로 정의하지 않고도 에 정의된 size_t 타입과 의 malloc/free를 사용할 수 있다. 또한 에 있는 write 함수 또한 사용할 수 있다. * fd (File descripter)란 무엇인가? 1) 시스템으로부터 할당 받은 파일을 대표하는 0이 아닌 정수 ..

    [Libft] C 언어 라이브러리 구현_Part2_추가함수 구현2

    혹시나 문제가 된다면 바로 비공개 처리하겠습니다. 지적이나 댓글 환영합니다! 이번 포스팅에서는 이어서 문자열 관련 함수들을 구현해보겠다. 소개할 함수 3개의 공통점은 모두 동적할당(malloc)을 사용하여 편집된 문자열을 새로 만드는 것이다. 이번 함수들은 메뉴얼이 이미 과제 페이지에 영어로 상세히 적혀있는 대신, 전보다 구현이 복잡한 특징을 가졌다. 따라서 이번 시간에는 함수의 역할 대한 정리보다는 함수를 어떤 방식으로 구현했는지, 구현에서 어떤 문제들을 마주쳤고 이를 어떻게 해결했는 지 위주로 설명하겠다. (면접용 연습) 주의사항이라고 적은 사항들이 대부분 내가 실수했으나 고쳐서 어떻게 해결했는 지에 대한 내용들이다. 참고로, 내가 정의한 libft.h 헤더에는 와 가 include 되어있다. 따라서..

    [Libft] C 언어 라이브러리 구현_Part2_추가함수 구현1

    혹시나 문제가 된다면 바로 비공개 처리하겠습니다. 지적이나 댓글 환영합니다! 이번 포스팅에서는 문자열 관련 함수들을 구현해보겠다. 소개할 함수 3개의 공통점은 모두 동적할당(malloc)을 사용하여 편집된 문자열을 새로 만드는 것이다. 이번 함수들은 메뉴얼이 이미 과제 페이지에 영어로 상세히 적혀있는 대신, 전보다 구현이 복잡한 특징을 가졌다. 따라서 이번 시간에는 함수의 역할 대한 정리보다는 함수를 어떤 방식으로 구현했는지, 구현에서 어떤 문제들을 마주쳤고 이를 어떻게 해결했는 지 위주로 설명하겠다. (면접용 연습) 주의사항이라고 적은 사항들이 대부분 내가 실수했으나 고쳐서 어떻게 해결했는 지에 대한 내용들이다. 참고로, 내가 정의한 libft.h 헤더에는 와 가 include 되어있다. 따라서 lib..