YouTip LogoYouTip

C Standard Library Stdlib H

# C Standard Library – ## Introduction The **stdlib.h** header file defines four variable types, several macros, and various general utility functions. `` is a header file in the C standard library that provides many general utility functions, including memory allocation, process control, sorting and searching, and string conversion, among others. ## Library Variables The following are the variable types defined in the stdlib.h header file: | No. | Variable & Description | | --- | --- | | 1 | **size_t** This is an unsigned integer type, which is the result of the **sizeof** keyword. | | 2 | **wchar_t** This is an integer type of the size of a wide character constant. | | 3 | **div_t** This is the structure returned by the **div** function. | | 4 | **ldiv_t** This is the structure returned by the **ldiv** function. | ## Library Macros The following are the macros defined in the stdlib.h header file: | No. | Macro & Description | | --- | --- | | 1 | **NULL** This macro is the value of a null pointer constant. | | 2 | **EXIT_FAILURE** This is the value to be returned by the exit function when the call fails. | | 3 | **EXIT_SUCCESS** This is the value to be returned by the exit function when the call succeeds. | | 4 | **RAND_MAX** This macro is the maximum value returned by the rand function. | | 5 | **MB_CUR_MAX** This macro represents the maximum number of bytes in a multibyte character set, which cannot be greater than MB_LEN_MAX. | ## Library Functions The following are the functions defined in the stdlib.h header file: | No. | Function & Description | | --- | --- | | 1 | [double atof(const char *str)](#) Converts the string pointed to by the argument _str_ to a floating-point number (type double). | | 2 | [int atoi(const char *str)](#) Converts the string pointed to by the argument _str_ to an integer (type int). | | 3 | [long int atol(const char *str)](#) Converts the string pointed to by the argument _str_ to a long integer (type long int). | | 4 | [double strtod(const char *str, char **endptr)](#) Converts the string pointed to by the argument _str_ to a floating-point number (type double). | | 5 | [long int strtol(const char *str, char **endptr, int base)](#) Converts the string pointed to by the argument _str_ to a long integer (type long int). | | 6 | [unsigned long int strtoul(const char *str, char **endptr, int base)](#) Converts the string pointed to by the argument _str_ to an unsigned long integer (type unsigned long int). | | 7 | [void *calloc(size_t nitems, size_t size)](#) Allocates the requested memory and returns a pointer to it. | | 8 | [void free(void *ptr)](#) Deallocates the memory previously allocated by a call to _calloc, malloc_, or _realloc_. | | 9 | [void *malloc(size_t size)](#) Allocates the requested memory and returns a pointer to it. | | 10 | [void *realloc(void *ptr, size_t size)](#) Attempts to resize the memory block pointed to by ptr that was previously allocated with a call to _malloc_ or _calloc_. | | 11 | [void abort(void)](#) Causes an abnormal program termination. | | 12 | [int atexit(void (*func)(void))](#) Calls the specified function **func** when the program terminates normally. | | 13 | [void exit(int status)](#) Causes the program to terminate normally. | | 14 | [char *getenv(const char *name)](#) Searches for the environment string pointed to by name and returns the associated value to the string. | | 15 | [int system(const char *string)](#) The command specified by string is passed to the host environment to be executed by the command processor. | | 16 | [void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *))](#) Performs a binary search. | | 17 | [void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))](#) Sorts an array. | | 18 | [int abs(int x)](#) Returns the absolute value of x. | | 19 | [div_t div(int numer, int denom)](#) Divides numer (numerator) by denom (denominator). | | 20 | [long int labs(long int x)](#) Returns the absolute value of x. | | 21 | [ldiv_t ldiv(long int numer, long int denom)](#) Divides numer (numerator) by denom (denominator). | | 22 | [int rand(void)](#) Returns a pseudo-random integer in the range 0 to _RAND_MAX_. | | 23 | [void srand(unsigned int seed)](#) This function seeds the random number generator used by the function **rand**. | | 24 | [int mblen(const char *str, size_t n)](#) Returns the length of the multibyte character pointed to by the argument _str_. | | 25 | [size_t mbstowcs(schar_t *pwcs, const char *str, size_t n)](#) Converts the string of multibyte characters pointed to by the argument _str_ to the array pointed to by _pwcs_. | | 26 | [int mbtowc(wchar_t *pwc, const char *str, size_t n)](#) Checks the multibyte character pointed to by the argument _str_. | | 27 | [size_t wcstombs(char *str, const wchar_t *pwcs, size_t n)](#) Converts the codes stored in the array _pwcs_ to multibyte characters and stores them in the string _str_. | | 28 | [int wctomb(char *str, wchar_t wchar)](#) Checks the multibyte character corresponding to the argument _wchar_. | ### Examples Here are some examples using functions from ``. Dynamic Memory Allocation: ## Example ```c #include #include int main() { int *array = (int*)malloc(10 * sizeof(int)); if (array == NULL) { perror("Memory allocation failed"); return 1; } for (int i = 0; i < 10; i++) { array = i; printf("%d ", array); } printf("n"); free(array); return 0; } Pseudo-Random Number Generation: ## Example ```c #include #include #include
← Sets SmoveAv Event Volumechange β†’