stdlib.h
From Wikipedia, the free encyclopedia
| C Standard Library headers |
stdlib.h is the header of the general purpose standard library of C programming language which includes functions involving memory allocation, process control, conversions and others. It is compatible with C++ and is known as cstdlib in C++. The name "stdlib" stands for standard library.
Contents |
[edit] Member functions
Members of the stdlib.h can be classified into the following categories: conversion, memory, process control, sort and search, mathematics.
| Name | Description |
|---|---|
| Type Conversion | |
atof |
string to float |
atoi |
string to integer |
atol |
string to long integer |
strtod |
string to double |
strtol |
string to long int |
strtoul |
string to unsigned long int |
| Pseudo-random sequence generation | |
rand |
generate a pseudo-random value |
srand |
set the pseudo-random generator seed |
| Memory allocation and deallocation | |
malloccallocrealloc |
allocate memory from the heap |
free |
release memory back to the heap |
| Process control | |
abort |
terminate execution abnormally |
atexit |
register a callback function for program exit |
exit |
terminate program execution |
getenv |
retrieve an environment variable |
system |
execute an external command |
| Sorting and searching | |
bsearch |
binary search an array |
qsort |
sort an array |
| Mathematics | |
abslabs |
absolute value |
divldiv |
integer division |
[edit] Member constants
The stdlib.h and stddef.h header files define the macro NULL, which yields a null pointer constant, and represents a pointer value that is guaranteed not to point to a valid address in memory. NULL may be defined as a constant expression equal to int zero, long int zero, or zero cast to a void * pointer:
#define NULL 0
#define NULL 0L
#define NULL ((void *) 0)
Note: Although the null pointer constant is always represented in C by the symbolic constant 0 or by 0 cast to a void pointer, the actual bit representation of such a pointer is system-specific and might not be all-bits-zero.
[edit] Member data types
A datatype called size_t is defined in the stdlib.h library, which is used to represent the size of an object. Library functions that take sizes expect them to be of type size_t, and the sizeof operator evaluates to size_t.
The actual type of size_t is platform-dependent; a common mistake is to assume size_t is the same as unsigned int, which can lead to programming errors [1], particularly as 64-bit architectures become more prevalent.
Two less widely used datatypes, div_t and ldiv_t, are also defined. They are the return types of the div and ldiv functions. The standard defines them as:
typedef struct { int quot, rem; } div_t;
typedef struct { long int quot, rem; } ldiv_t;
[edit] Nonstandard functions
itoa is a common function that is included in many implementations of stdlib.h, but the standard does not define the function. It may have been included because of its appearance in The C Programming Language, the same effect of itoa can be achieved with sprintf (which is standard).
[edit] See also
[edit] References
- stdlib.h summary on cplusplus.com, accessed in February 2006.
- Why size_t matters

