Online C Compiler
Abrir en el compilador

Edición didáctica en español. El código y sus salidas conservan el original.

Fallo de segmentación en C

Localiza accesos inválidos a memoria y corrige su causa antes de volver a ejecutar.

Abrir en el compilador

Fallo de segmentación en C
Localiza accesos inválidos a memoria y corrige su causa antes de volver a ejecutar.

Un fallo de segmentación suele indicar que el proceso intentó acceder a memoria no permitida. Puede deberse a punteros nulos o sin inicializar, índices fuera de límites o acceso a objetos liberados. No todo comportamiento indefinido produce un fallo inmediato.

Reduce el programa hasta reproducir el problema. Revisa el objeto al que apunta cada puntero, su duración y los índices usados. Comprueba malloc antes de escribir y no devuelvas direcciones de variables locales automáticas.

En un entorno que lo permita, compila con información de depuración y AddressSanitizer; un depurador ayuda a inspeccionar la pila y las variables. La disponibilidad de estas herramientas depende del servicio. Corrige el acceso inválido, no solo el lugar donde aparece el síntoma.

Código C

#include <stdio.h>

int main(void)
{
    int values[] = {10, 20, 30};
    size_t count = sizeof values / sizeof values[0];

    for (size_t i = 0; i < count; ++i) {
        printf("values[%zu] = %d\n", i, values[i]);
    }

    return 0;
}
Abrir en el compilador

Preguntas frecuentes

¿Por qué el código y la salida siguen en inglés?

Las palabras clave, los identificadores y los textos que verifican las pruebas se conservan para no cambiar el programa. Las explicaciones y los controles están traducidos.