Tullio Facchinetti

Esercizio di programmazione su segmentation fault

by Tullio Facchinetti

Categories: article lang_it fdi


Il programma in linguaggio C segfault.c è stato realizzato per contenere una serie di errori logici che causano errori di “segmentation fault”.

Lo studente è chiamato a scaricare ed analizzare il programma per individuare tutti gli errori ed ottenere un programma che funzioni correttamente. Può quindi essere utilizzato come test di autovalutazione per capire se sono stati compresi vari concetti illustrati nel corso di programmazione.

Tra gli argomenti che bisogna conoscere per scoprire gli errori contenuti nel programma vi sono: l’uso del ciclo for, l’uso delle funzioni, il passaggio di parametri per riferimento, i vettori, l’allocazione dinamica della memoria con malloc e free, il passaggio per riferimento, le strutture dati, l’aritmetica dei puntatori, la stampa, il passaggio di parametri al programma da linea di comando, la generazione di numeri pseudo-casuali di tipo intero in un intervallo specifico, la struttura di una stringa.

Il programma contiene 9-10 errori diversi.

Funzionamento desiderato del programma

Il funzionamento atteso dal programma è illustrato di qui di seguito segfault.c. Per i dettagli implementativi si veda il codice sorgente del programma.

Il programma alloca un numero di strutture di tipo struct dato. Il numero di strutture da allocare viene fornito da linea di comando.

I valori nelle singole strutture contengono dati generati in modo pseudo-casuale, e rappresentano l’iniziale di un nome e di un cognome (es. "F." o "T."), e un valore numerico che rappresenta una età anagrafica.

Dopo l’assegnamento, i valori vengono stampati col formato (esempio):

N. W. ha 25 anni
R. B. ha 23 anni
M. Q. ha 27 anni
...

Al termine del programma, viene liberata la memoria precedentemente allocata.

Se al programma non viene fornito alcun paramentro, deve terminare senza errori e senza stampare niente.


Highlights

  • Students and theses
  • Publications
  • Thesis topics
  • Curated awesome list of CLI apps
  • Last updates (English)

  • Speed up the compilation of LaTex Beamer presentations ()
  • Students and theses ()
  • Students and theses - English ()
  • Learn enough C to survive ()
  • Workflow for writing theses collaboratively ()
  • Guidelines for theses and presentations ()
  • Projects ()
  • Last updates (Italian)

  • Risultati FdI 8 e 11 aprile 2024 ()
  • Risultati FdI 20 Febbraio 2024 ()
  • Risultati FdI 02 Febbraio 2024 ()
  • Risultati FdI 20-27 Novembre 2023 ()
  • Risultati FdI 28 Settembre 2023 ()
  • Risultati FdI 01 Settembre 2023 ()
  • Risultati FdI 27 Luglio 2023 ()
  • List of categories

    Article Article_en Article_it C Courses Fdi Lang_en Lang_it Latex Programming Project Research Results Robotics Software Teaching Thesis Tips