반응형

42Seoul 24

[0 Circle] Libft - ft_memcmp, ft_strlen

📌ft_memcmp str1과 str2를 n바이트만큼 비교 void *ft_memcmp(const void *str1, const void *str2, unsigned int n);➕ 매개변수 (Parameters) str1 : 비교할 첫번째 메모리의 시작값 str2 : 비교할 두번째 메모리의 시작값 n : 비교할 만큼의 바이트 수 ➕ 반환값 (Return) int : str2가 str1보다 큰 경우 음수 / 작은 경우 양수 / 동일한 경우 0 ➕ 설명 (Description) ➕ 코드 (Code) #include "libft.h" int ft_memcmp(const void *str1, const void *str2, unsigned int n) { unsigned const char *tmp1; un..

[0 Circle] Libft - ft_memmove, ft_memchr

📌ft_memmove 메모리를 이동하는 함수 void*ft_memmove(void *dest, const void *src, unsigned int len) ;➕ 매개변수 (Parameters) dest : 이동하여 저장할 메모리의 시작 주소 src : 이동하려는 메모리의 시작 주소 n : 이동할 바이트의 수 ➕ 반환값 (Return) void * : dest의 포인터 반환 ➕ 설명 (Description) memcpy와 같이 메모리의 내용을 다른 메모리로 옮기는 함수이지만 memmove 함수는 이동할 데이터를 임시 버퍼에 옮긴 후 대상 버퍼오 이동하는 과정을 거치기 때문에 두 메모리가 근점해 있더라도 중첩현상이 발생하지 않는 장점이 있다. ➕ 코드 (Code) #include "libft.h" void..

[0 Circle] Libft - ft_memcpy, ft_memccpy

📌ft_memcpy src메모리영역에서 dest메모리 영역으로 n byte만큼 복사 void *ft_memcpy(void *dest, const void *src, unsigned int n);➕ 매개변수 (Parameters) dest : 채우고자 하는 메모리의 시작 주소 src : 복사하려는 메모리의 시작 주소 n : 채우고자 하는 바이트의 수 ➕ 반환값 (Return) void * : dest의 포인터 반환 ➕ 설명 (Description) strcpy() 함수와의 차이점은 문자열은 문자열의 끝을 Null 바이트로 구분하지만 메모리는 Null 바이트도 데이터이기 때문에 n을 명시적으로 지정해야 한다는 것이다. ➕ 코드 (Code) #include "libft.h" void*ft_memcpy(void..

[0 Circle] Libft - ft_memset, ft_bzero

📌ft_memset 어떤 메모리의 시작점부터 연속된 범위를 어떤 값으로 모두 지정하고 싶을 때 사용 void *ft_memset(void *dst, int val, size_t size);➕ 매개변수 (Parameters) dst : 채우고자 하는 메모리의 시작 주소 val : 메모리에 채우고자하는 값. int형이지만 내부에서는 unsigned char(1 byte)로 변환되어서 저장 size : 채우고자 하는 바이트의 수 ➕ 반환값 (Return) void * : dst 리턴 ➕ 설명 (Description) void * (보이드 포인터)는 주소를 담는 자료형. 주소 연산은 불가능 ➕ 코드 (Code) #include "libft.h" void *ft_memset(void *s, int c, unsig..