memset
void *ft_memset(void *s, int c, size_t n)
๋ฉ๋ชจ๋ฆฌ์ ๋ด์ฉ(๊ฐ)์ ์ํ๋ ํฌ๊ธฐ๋งํผ ํน์ ๊ฐ์ผ๋ก ์ธํ ํ ์ ์๋ ํจ์์ด๋ค. (memory + setting)
- s: ๋ฉ๋ชจ๋ฆฌ์ ์์ ์ฃผ์
- c: ์ฑ์ ๋ฃ์ ๊ฐ (1๋ฐ์ดํธ์ง๋ฆฌ). unsigned char ๋ก ๋ณํ๋์ด์ ์ ์ฅ๋๋ค.
- n: ์ฑ์ธ ๋ฐ์ดํธ ์
memmove
void *ft_memcpy(void *dest, const void *src, size_t n)
void *ft_memmove(void *dest, const void *src, size_t n)
memmove๋ memcpy์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ๋ณต์ฌํ๋ ํจ์์ด๋ค.
memmove๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฒน์น๋ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํด์ ์์ ํ๊ฒ ๋ณต์ฌํ๋ค.
- dest == src: ๋ณต์ฌ ๋์๊ณผ ์๋ณธ์ด ๊ฐ์ ์ฃผ์ → ๋ณต์ฌํ ํ์ ์์
- dest > src: ๋ฉ๋ชจ๋ฆฌ ์์ญ ๊ฒน์นจ ๊ฐ๋ฅ์ฑ ์์ → ๋ค์์๋ถํฐ ๋ณต์ฌ
- dest < src: ์์์๋ถํฐ ๋ณต์ฌํด๋ OK
dest > src ์์
: dest = src + 2
char str[] = "A B C D E F";
↑ ↑ ↑ ↑ ← src (str)
↑ ↑ ↑ ↑ ← dest (str + 2)
memcpy(str + 2, str, 4) ์ฌ์ฉ ์ (๋ฎ์ด์ฐ๊ธฐ ๋ฐ์)
์ด๊ธฐ ์ํ: [A][B][C][D][E][F]
๋ณต์ฌ ๋ชฉํ: โโโโโ→ ์ฌ๊ธฐ 4๊ธ์ ๋ฎ์ด์ฐ๊ธฐ
์ค๊ฐ ๊ณผ์ : [A][B][A][B][C][D] ← ๊นจ์ง ๊ฐ๋ฅ์ฑ
memmove(str + 2, str, 4) ์ฌ์ฉ ์ (์์ ๋ณต์ฌ)
์ด๊ธฐ ์ํ: [A][B][C][D][E][F]
๋ณต์ฌ ๊ณผ์ : ์์ ๋ฒํผ์ [A][B][C][D] ์ ์ฅ
๊ฒฐ๊ณผ: [A][B][A][B][C][D] ← ์ ์ ๋ณต์ฌ
์์ ์์์ฒ๋ผ dest๊ฐ src๋ณด๋ค ๋ค์ ์์ผ๋ฉด ๋ค์์๋ถํฐ ๋ณต์ฌํด์ผ ์์ ํ๋ค.
memchr
void *ft_memchr(const void *s, int c, size_t n)
s์ ์์์๋ถํฐ n ๋ฐ์ดํธ๋ฅผ ๊ฒ์ฌํ๋ฉด์, c์ ์ผ์นํ๋ ์ฒซ ๋ฒ์งธ ๋ฐ์ดํธ๋ฅผ ์ฐพ์์ ๊ทธ ์์น์ ํฌ์ธํฐ๋ฅผ ๋ฐํํ๋ค.
๋ชป ์ฐพ์ผ๋ฉด NULL์ ๋ฐํํ๋ค.
- s: ๊ฒ์ํ ๋ฉ๋ชจ๋ฆฌ์ ์์ ์ฃผ์
- c: ์ฐพ์ ๋ฐ์ดํธ ๊ฐ (์ ์ํ์ด์ง๋ง ๋ด๋ถ์์ unsigned char๋ก ์บ์คํ ๋จ)
- n: ๊ฒ์ํ ๋ฐ์ดํธ ์
bzero
void ft_bzero(void *s, size_t n)
s๋ถํฐ n ๋ฐ์ดํธ๋งํผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ 0์ผ๋ก ์ด๊ธฐํ ํด์ฃผ๋ ํจ์์ด๋ค. (๋ฌธ์ ๊ธฐ์ค์ผ๋ก \0, ์ซ์ ๊ธฐ์ค์ผ๋ก 0)
calloc
void *ft_calloc(size_t nmemb, size_t size)
count × size ๋ฐ์ดํธ๋งํผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ณ , ์ ๋ถ 0์ผ๋ก ์ด๊ธฐํํด์ฃผ๋ ํจ์์ด๋ค.
(ํฌ์ธํฐ์์ NULL, int์์ 0, char์์ \0)
- count: ํ ๋นํ ์์์ ๊ฐ์ (์: ๋ฐฐ์ด ํฌ๊ธฐ)
- size: ๊ฐ ์์์ ๋ฐ์ดํธ ํฌ๊ธฐ (์:
sizeof(int))
'๐โโ๏ธ Activities > 42 Cursus' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Libft][C] ์ฐ๊ฒฐ ๋ฆฌ์คํธ(linked list) ํจ์ ๊ตฌํ (lstadd_front, lstdelone, lstmap) (0) | 2025.06.02 |
|---|---|
| [Libft][C] string ํจ์ ๊ตฌํ (strlcpy / strlcat / strchr / strnstr / substr / strtrim / strmapi / striteri) (0) | 2025.06.02 |
| [C] void & void *ํ์ / ํฌ์ธํฐ ์ฐ์ฐ (0) | 2025.06.02 |
| [Makefile] PHONY (1) | 2025.05.30 |
| [Makefile] SRC / OBJ / NAME (0) | 2025.05.30 |