목록42seoul/libft (3)
복습
사용할 구조체 typedef structs_list { void*content; struct s_list*next; }t_list; 1. lstnew t_list *ft_lstnew(void *content); : t_list타입 리스트를 하나 만들어 반환한다. 할당을 하나해서 인자로 받은 content를 구조체의 content에 할당한다. 하나이므로 next에는 널을 할당한다. 2. lstadd_front voidft_lstadd_front(t_list **lst, t_list *new); : 인자로 받은 리스트의 가장 앞에 new를 추가한다. ※ 이중 포인터를 사용하는 이유는 단일 포인터를 사용하게 되면 실제 main함수에서 만들어진 리스트의 주소값을 참조할 수 없으므로 이중 포인터를 사용하여 실제 ..
1. substr char *ft_substr(char const *s, unsigned int start, size_t len); : s 문자열을 start 인덱스부터 len 길이 만큼 자른 문자열을 반환. len이 s의 길이보다 클 때는 s의 문자열의 끝까지만 자르도록 처리해야 한다. 2. strjoin char *ft_strjoin(char const *s1, char const *s2); : s1과 s2를 이은 문자열을 반환. 3. strtrim char *ft_strtrim(char const *S1, char const *set); : s1 문자열의 앞, 뒤에 있는 set 문자열에 포함되는 문자들을 제거한 문자열을 반환. 처음과 끝의 인덱스를 구한 후 동적할당 하고, substr을 이용하여 값..
1. memset void*ft_memset(void *ptr, int val, size_t size) ptr을 size 크기만큼 val로 초기화 하는 함수 이 때 초기화 할 값인 c는 인자로는 int로 전달되지만 함수 내부적으로는 unsigned char로 형변환 되어서 사용된다. 그 이유는 unsigned char 는 모든 bit를 투명하게 볼 수있다. 즉, 다른 type 은 내부 비트의 일부를 값을 표현하기 위한 용도가 아닌 다른 용도(부호 비트)로 사용할 수 있으나 unsigned char 는 이것이 허락되지 않는다. 따라서, 임의의 메모리에 바이트 단위로 접근해 값을 다룰 때에는 반드시 unsigned char 를 사용해야 full portability 를 얻을 수 있다. 또한, 그와 같은 이유..