U E D R , A S I H C RSS

Our Major Lang IsCAndCPlus Plus/stdlib.h

stdlib.h

λ‹΄λ‹Ή : μ΄λ„ν˜„
stdlib.h - Standard library μ •μ˜

맀크둜 (Macros)

맀크둜 λͺ… μ„λͺ…
NULL 널 포인터 μƒμˆ˜ κ°’
EXIT_FAILURE μ‹€νŒ¨ν•œ μ’…λ£Œ (0이 μ•„λ‹Œ 값을 가짐)
EXIT_SUCCESS μ„±κ³΅ν•œ μ’…λ£Œ (0인 값을 가짐)
RAND_MAX 랜덀 ν•¨μˆ˜μ— μ˜ν•΄μ„œ λ¦¬ν„΄λ˜λŠ” μ΅œλŒ€ κ°’ (적어도 32, 767)
MB_CUR_MAX ν˜„μž¬ μ‚¬μš© 쀑인 λ‘œμΌ€μΌμ—μ„œ λ©€ν‹°λ°”μ΄νŠΈ 문자의 μ΅œλŒ€ 길이

λ³€μˆ˜ (Variables)

λ³€μˆ˜ λͺ… μ„λͺ…
typedef size_t sizeof ν‚€μ›Œλ“œμ˜ unsigned μ •μˆ˜ν˜• κ²°κ³Ό
typedef wchar_t ν™•μž₯ 문자 μƒμˆ˜ 크기의 μ •μˆ˜ νƒ€μž…
struct div_t div() ν•¨μˆ˜μ— μ˜ν•΄ λ¦¬ν„΄λ˜λŠ” κ΅¬μ‘°μ²΄ν˜•
struct ldiv_t idiv() ν•¨μˆ˜μ— μ˜ν•΄ λ¦¬ν„΄λ˜λŠ” κ΅¬μ‘°μ²΄ν˜•

ν•¨μˆ˜ (Functions) - String Functions

ν•¨μˆ˜ λͺ… μ„λͺ…
double atof(const char *str); λ¬Έμžμ—΄μ„ μ‹€μˆ˜(double precision)둜 λ³€ν™˜
int atoi(const char *str); λ¬Έμžμ—΄μ„ μ •μˆ˜(integer)둜 λ³€ν™˜
double strtod(const char *str, char **endptr); λ¬Έμžμ—΄μ„ μ‹€μˆ˜(double precision)둜 λ³€ν™˜
long int strtol(const char *str, char **endptr, int base); λ¬Έμžμ—΄μ„ μ •μˆ˜(long integer)둜 λ³€ν™˜
unsigned long int strtoul(const char *str, char **endptr, int base); λ¬Έμžμ—΄μ„ μ •μˆ˜(unsigned long)둜 λ³€ν™˜

ν•¨μˆ˜ (Functions) - Memory Functions

ν•¨μˆ˜ λͺ… μ„λͺ…
void *calloc(size_t nitems, size_t size); μš”μ²­λœ λ©”λͺ¨λ¦¬ ν• λ‹Ή (λͺ¨λ“  μ›μ†ŒλΌ 0으둜 μ΄ˆκΈ°ν™” ν•œλ‹€)
void free(void *ptr); calloc(), malloc(), realloc()에 μ˜ν•΄ ν• λ‹Ήλœ λ©”λͺ¨λ¦¬ ν•΄μ œ
void *malloc(size_t size); μš”μ²­λœ λ©”λͺ¨λ¦¬ ν• λ‹Ή (μ›μ†ŒλΌ μ΄ˆκΈ°ν™” ν•˜μ§€ μ•ŠλŠ”λ‹€)
void *realloc(void *ptr, size_t size); calloc(), malloc()에 μ˜ν•΄ ν• λ‹Ήλœ λ©”λͺ¨λ¦¬ ν¬κΈ°λΌ μž¬μ‘°μ •ν•œλ‹€

== ν•¨μˆ˜ (Functions) - Environment Functions ==
ν•¨μˆ˜ λͺ… μ„λͺ…
void abort(void); 비정상적인 ν”„λ‘œκ·Έλž¨ μ’…λ£ŒλΌ λ°œμƒμ‹œν‚¨λ‹€
int atexit(void (*func)(void)); ν”„λ‘œκ·Έλž¨μ΄ μ •μƒμ μœΌλ‘œ μ’…λ£Œλ  λ•Œ μ „λ‹¬μΈμžλ‘œ λ„˜κ²¨μ§„ ν•¨μˆ˜ν¬μΈν„°λΌ μ΄μš©ν•΄μ„œ νŠΉμ • ν•¨μˆ˜ μ‹€ν–‰
void exit(int status); 정상적인 ν”„λ‘œκ·Έλž¨ μ’…λ£ŒλΌ λ°œμƒμ‹œν‚¨λ‹€
char *getenv(const char *name); ν™˜κ²½ λ³€μˆ˜λΌ μ–»λŠ”λ‹€
int system(const char *string); μ „λ‹¬μΈμžλ‘œ 받은 λͺ…λ Ή μ‹€ν–‰

ν•¨μˆ˜ (Functions) - Searching and Sorting Functions

ν•¨μˆ˜ λͺ… μ„λͺ…
void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *)); 이진검색 μˆ˜ν–‰
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)); 퀡 μ†ŒνŠΈ μˆ˜ν–‰

ν•¨μˆ˜ (Functions) - Math Functions

ν•¨μˆ˜ λͺ… μ„λͺ…
int abs(int x); μ •μˆ˜ν˜• μ ˆλŒ€κ°’ 리턴
div_t div(int numer, int denom); μ „λ‹¬μΈμžμ˜ numerλΌ denom으둜 λ‚˜λˆˆ κ°’κ³Ό λ‚˜λ¨Έμ§€λΌ κ΅¬μ‘°μ²΄ν˜•μ‹μœΌλ‘œ 리턴
long int labs(long int x); longν˜• μ •μˆ˜μ˜ μ ˆλŒ€κ°’μ„ 리턴
ldiv_t ldiv(long int numer, long int denom); div()와 λ™μΌν•˜κ³  λ³€μˆ˜ νƒ€μž…λ§Œ long int
int rand(void); 0λΆ€ν„° RAND_MAXκΉŒμ§€μ˜ λ²”μœ„μ‚¬μ΄μ˜ λ‚œμˆ˜ 리턴
void srand(unsigned int seed); rand()에 μ˜ν•΄ μ‚¬μš©λ˜λŠ” λ‚œμˆ˜ 생성기에 인자 곡급

ν•¨μˆ˜ (Functions) - Multibyte Functions

ν•¨μˆ˜ λͺ… μ„λͺ…
int mblen(const char *str, size_t n); 닀쀑 λ°”μ΄νŠΈ 문자의 길이 리턴
size_t mbstowcs(schar_t *pwcs, const char *str, size_t n); 닀쀑 λ°”μ΄νŠΈ 문자 μŠ€νŠΈλ§μ„ wide 문자 슀트링으둜 λ³€ν™˜
int mbtowc(whcar_t *pwc, const char *str, size_t n); 닀쀑 λ°”μ΄νŠΈ λ¬ΈμžλΌ wide 문자둜 λ³€ν™˜
size_t wcstombs(char *str, const wchar_t *pwcs, size_t n); wide 문자 μŠ€νŠΈλ§μ„ 닀쀑 λ°”μ΄νŠΈ 슀트링으둜 λ³€ν™˜
int wctomb(char *str, wchar_t wchar); wide λ¬ΈμžλΌ λ‹€μ€‘ λ°”μ΄νŠΈ 문자둜 λ³€ν™˜

stdlib.h 의 ν•¨μˆ˜ 예제

strtod(), strtol(), strtoul() μ˜ˆμ œμ½”λ“œ

~cpp
#include <stdlib.h>
#include <stdio.h>

void main( void )
{
   char   *string, *stopstring;
   double x;
   long   l;
   int    base;
   unsigned long ul;
   string = "3.1415926This stopped it";
   x = strtod( string, &stopstring );
   printf( "string = %s\n", string );
   printf("   strtod = %f\n", x );
   printf("   Stopped scan at: %s\n\n", stopstring );
   string = "-10110134932This stopped it";
   l = strtol( string, &stopstring, 10 );
   printf( "string = %s", string );
   printf("   strtol = %ld", l );
   printf("   Stopped scan at: %s", stopstring );
   string = "10110134932";
   printf( "string = %s\n", string );
   /* Convert string using base 2, 4, and 8: */
   for( base = 2; base <= 8; base *= 2 )
   {
      /* Convert the string: */
      ul = strtoul( string, &stopstring, base );
      printf( "   strtol = %ld (base %d)\n", ul, base );
      printf( "   Stopped scan at: %s\n", stopstring );
   }
}

strtod(), strtol(), strtoul() μ‹€ν–‰ κ²°κ³Ό

string = 3.1415926This stopped it
strtod = 3.141593
Stopped scan at: This stopped it

string = -10110134932This stopped it strtol = -2147483647 Stopped scan at: This stopped itstring = 10110134932
strtol = 45 (base 2)
Stopped scan at: 34932
strtol = 4423 (base 4)
Stopped scan at: 4932
strtol = 2134108 (base 8)
Stopped scan at: 932

malloc() μ˜ˆμ œμ½”λ“œ

~cpp
#include <stdlib.h>         /* For _MAX_PATH definition */
#include <stdio.h>
#include <malloc.h>

int main( void )
{
   char *string;

   /* Allocate space for a path name */
   string = malloc( _MAX_PATH );

   // In a C++ file, explicitly cast malloc's return.  For example, 
   // string = (char *)malloc( _MAX_PATH );

   if( string == NULL )
      printf( "Insufficient memory available\n" );
   else
   {
      printf( "Memory space allocated for path name\n" );
      free( string );
      printf( "Memory freed\n" );
   }
}

malloc() μ‹€ν–‰ κ²°κ³Ό

Memory space allocated for path name
Memory freed

qsort(), bsearch() μ˜ˆμ œμ½”λ“œ

~cpp
#include<stdlib.h> 
#include<stdio.h> 
#include<string.h> 

int main(void) 
{ 
	int i;
	char string_array[10][50]={"John", "Jane",  "Mary", "Rogery", "Dave",  
		"Paul", "Beavis", "Astro",  "George", "Elroy"}; 
	
	/* μ •λ ¬ μ „ */
	for (i = 0; i < 10; i++)
		printf("%s, ", string_array[i]);
	printf("\n");

	/* Sort the list */ 
	qsort(string_array, 10, 50, strcmp);
	
	/* μ •λ ¬ ν›„ */
	for (i = 0; i < 10; i++)
		printf("%s, ", string_array[i]);
	printf("\n");

	/* Search for the item "Elroy" and print it */ 
	printf("%s\n",bsearch("Elroy", string_array, 10, 50, strcmp)); 
	
	return 0; 
} 

qsort(), bsearch() μ‹€ν–‰ κ²°κ³Ό

John, Jane, Mary, Rogery, Dave, Paul, Beavis, Astro, George, Elroy,
Astro, Beavis, Dave, Elroy, George, Jane, John, Mary, Paul, Rogery,
Elroy

----
OurMajorLangIsCAndCPlusPlus
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:57
Processing time 0.0310 sec