Edizione didattica italiana
Domande di colloquio sul C
Ripassa puntatori, memoria, array, funzioni e comportamento indefinito con esempi ragionati.

Distingui il valore di un oggetto dal suo indirizzo. C passa gli argomenti per valore. Una funzione può modificare un oggetto del chiamante ricevendo una copia di un puntatore valido. Un array non è un puntatore, anche se molte espressioni array si convertono in puntatori al primo elemento.
Spiega la durata automatica e statica degli oggetti e l’allocazione dinamica. Non restituire l’indirizzo di una variabile locale automatica. Controlla malloc e libera ogni allocazione una sola volta: dopo free non puoi più accedere all’oggetto.
Ripassa sizeof, const, static e le stringhe terminate da zero. sizeof misura un array completo, ma un parametro dichiarato come array viene adattato a puntatore. Riserva anche lo spazio per il terminatore delle stringhe.
Prima di scrivere un algoritmo, dichiara precondizioni, casi limite e complessità. Con un comportamento indefinito non esiste un risultato certo da prevedere: individua l’operazione non valida e correggila.
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.