Stdlib.h
# Stdlib.h

stdlib.h (std-lib: standard library o biblioteca estándar). Es el archivo de cabecera de la biblioteca estándar de propósito general del lenguaje de programación C. Contiene los prototipos de funciones de C para gestión de memoria dinámica, control de procesos y otras. Es compatible con C++ donde se conoce como cstdlib.

## Funciones miembro

Las funciones que pertenecen a stdlib.h pueden clasificarse en las siguientes categorías: conversión, memoria, control de procesos, ordenación y búsqueda, matemáticas.

| Nombre | Descripción |
| - | - |
| Conversión de tipos ||
| atof (ascii to float) | cadena de caracteres a coma flotante |
| atoi (ascii to integer) | cadena de caracteres a entero |
| atol (C Standard Library)]] (ascii to long) | cadena de caracteres a entero tamaño largo |
| strtod (string to double) | cadena de caracteres a coma flotante tamaño doble |
| strtol (string to long) | cadena de caracteres a entero largo |
| strtoul (string to unsigned long) | cadena de caracteres a entero largo sin signo (positivo) |
| Generación de números pseudo-aleatorios ||
| rand | Genera un número pseudo-aleatorio |
| srand | Establece la semilla para el generador de números pseudo-aleatorios |
| Gestión de memoria dinámica ||
| malloc, calloc, realloc | Reservan memoria dinámica del heap (montón o montículo) |
| free | Liberan memoria devolviéndola al heap |
| Control de procesos ||
| abort | terminar ejecución anormalmente |
| atexit | registrar una función callback para la salida del programa |
| exit (operating system) | terminar ejecución del programa |
| getenv | recuperar una variable de entorno |
| system (C Standard Library) | ejecutar un comando externo |
| Ordenación y búsqueda ||
| bsearch | búsqueda binaria en un array |
| qsort (C Standard Library) | ordena un vector (informática) usando Quicksort |
| Matemáticas ||
| abs, labs | valor absoluto |
| div, ldiv | división entera o euclidiana |

## Constantes miembro

Los ficheros de cabecera stdlib.h y stddef.h definen la macro NULL, que produce una constante puntero nulo, y representa un valor de puntero que no apunta a ninguna dirección de memoria válida. NULL puede definirse como una expresión constante equivalente a los valores cero entero, cero entero largo o cero convertido (casting) a puntero vacío (void *):

## Tipos de datos miembro

En la biblioteca stdlib.h se define un tipo de dato llamado size_t que representa el tamaño de un vector para las funciones miembro de la biblioteca. En la práctica, se asume que size_t es equivalente a un entero sin signo (positivo).

También se definen dos tipos de datos más, div_t y ldiv_t. Son los tipos devueltos por las funciones div y ldiv. Según el estándar, estos tipos se definen del siguiente modo:

## Funciones no estándar

itoa (integer to ascii) es una función que normalmente se incluye en muchas implementaciones de stdlib.h aunque ésta no venga definida por el estándar. Sirve para convertir un entero a cadena de caracteres.

