Se produce cuando un programa permite la escritura más allá del buffer asignado a este.
Segmento de texto: segmento de codigo que contiene instrucciones ejecutables. Se sitúa debajo del heap y del stack para prevenir ataques de overflow.
Segmento de datos no inicializados: Contiene variables globales y estáticas inicializadas a 0
Segmento de datos inicializados: Contiene variables globales y estáticas inicializadas. Segmento de lectura/escritura ya que las variables se puede modificar dinamicamente en tiempo de ejecución.
Segmento de Stack: Estructura LIFO en las zonas altas de memoria
Segmento de Heap: Comienza en la terminal BSS y crece hacia dimensiones altas, conteniendo memoria dinámica con el almacenamiento a largo plazo. Es común para todas las librerías compartidas.
Los elementos añadidos a la pila cada vez que se hace una llamada a función se conocen como stack frames o frames. Cada stack frame contiene cariables y parámetros de una función, además de una dirección de retorno.