Online C Compiler
Apri nel compilatore

Edizione didattica italiana

Errore di segmentazione in C

Individua accessi non validi e correggi limiti e durata degli oggetti.

Apri nel compilatore

Errore di segmentazione in C
Individua accessi non validi e correggi limiti e durata degli oggetti.

Un puntatore non inizializzato, un indice fuori limite o un oggetto già liberato possono causare accessi non validi. Il comportamento è indefinito: un errore di segmentazione visibile non è garantito a ogni esecuzione.

Riduci il programma al minimo caso riproducibile. Controlla limiti, risultato di malloc e durata di ogni oggetto. Non restituire l’indirizzo di una variabile locale automatica quando la funzione termina.

Un debugger o AddressSanitizer può localizzare l’accesso errato se l’ambiente lo supporta. Correggi la causa e verifica anche casi vuoti e dimensioni limite.

Codice sorgente

#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;
}
Apri nel compilatore

Domande frequenti

Perché il codice e alcuni risultati restano in inglese?

Parole chiave C, identificatori, commenti del programma e output attesi restano quelli originali per preservare codice eseguibile e test coerenti. Spiegazioni e istruzioni sono tradotte.