1ν•™λ…„ (2023)/C μ–Έμ–΄

[C] <stdlib.h> λž€?

waterproof 2023. 7. 8. 00:58

 

 

 

<stdlib.h>λŠ” C ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ μ‚¬μš©λ˜λŠ” ν‘œμ€€ 라이브러리 헀더 νŒŒμΌμ΄λ‹€. 이 헀더 νŒŒμΌμ—λŠ” λ©”λͺ¨λ¦¬ 관리, λ‚œμˆ˜ 생성, λ¬Έμžμ—΄ λ³€ν™˜, ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ λ“±κ³Ό κ΄€λ ¨λœ ν•¨μˆ˜λ“€μ΄ μ •μ˜λ˜μ–΄ μžˆλ‹€.

 

<stdlib.h> 헀더 νŒŒμΌμ— μ •μ˜λœ λͺ‡ 가지 μ€‘μš”ν•œ ν•¨μˆ˜λ“€μ€ λ‹€μŒκ³Ό κ°™λ‹€:

 

  • malloc(), calloc(), realloc(), free(): 동적 λ©”λͺ¨λ¦¬ ν• λ‹Ήκ³Ό κ΄€λ ¨λœ ν•¨μˆ˜λ“€μ΄λ‹€. malloc()은 주어진 크기의 λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήν•˜κ³ , calloc()은 크기가 0으둜 μ΄ˆκΈ°ν™”λœ λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήν•œλ‹€. realloc()은 이미 ν• λ‹Ήλœ λ©”λͺ¨λ¦¬μ˜ 크기λ₯Ό μ‘°μ •ν•œλ‹€. free()λŠ” λ™μ μœΌλ‘œ ν• λ‹Ήλœ λ©”λͺ¨λ¦¬λ₯Ό ν•΄μ œν•œλ‹€.
  • rand(), srand(): λ‚œμˆ˜ 생성과 κ΄€λ ¨λœ ν•¨μˆ˜λ“€μ΄λ‹€. rand()λŠ” 0λΆ€ν„° RAND_MAX μ‚¬μ΄μ˜ λ‚œμˆ˜λ₯Ό μƒμ„±ν•˜κ³ , srand()λŠ” λ‚œμˆ˜ λ°œμƒκΈ°λ₯Ό μ΄ˆκΈ°ν™”ν•œλ‹€.
  • atoi(), atol(), atof(): λ¬Έμžμ—΄μ„ μ •μˆ˜, λ‘± μ •μˆ˜ λ˜λŠ” 뢀동 μ†Œμˆ˜μ  숫자둜 λ³€ν™˜ν•˜λŠ” ν•¨μˆ˜λ“€μ΄λ‹€.
  • exit(), abort(): ν”„λ‘œκ·Έλž¨μ„ μ’…λ£Œν•˜κ±°λ‚˜ λΉ„μ •μƒμ μœΌλ‘œ μ’…λ£Œν•˜λŠ” ν•¨μˆ˜λ“€μ΄λ‹€. exit()λŠ” ν”„λ‘œκ·Έλž¨μ„ μ •μƒμ μœΌλ‘œ μ’…λ£Œμ‹œν‚€κ³ , abort()λŠ” 비정상적인 μ’…λ£Œλ₯Ό μœ λ°œν•œλ‹€.
  • κ·Έ 외에도 system(), rand_r(), getenv(), setenv() λ“± λ‹€μ–‘ν•œ ν•¨μˆ˜λ“€μ΄ <stdlib.h>에 μ •μ˜λ˜μ–΄ μžˆλ‹€.

<stdlib.h> 헀더 νŒŒμΌμ€ C μ–Έμ–΄μ˜ ν‘œμ€€ λΌμ΄λΈŒλŸ¬λ¦¬μ— ν¬ν•¨λ˜μ–΄ μžˆμœΌλ―€λ‘œ, λŒ€λΆ€λΆ„μ˜ C μ»΄νŒŒμΌλŸ¬μ—μ„œ 기본적으둜 μ œκ³΅λœλ‹€. 이 헀더 νŒŒμΌμ„ μ‚¬μš©ν•˜λ €λ©΄ #include <stdlib.h> 문을 μ‚¬μš©ν•˜μ—¬ ν”„λ‘œκ·Έλž¨μ— ν¬ν•¨μ‹œμΌœμ•Ό ν•œλ‹€.