Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio12:esercitazioni:esercitazione1

Questa è una vecchia versione del documento!


Esercitazione 1

Dove si richiama il C sequenziale: in particolarere puntatori, strutture ricorsive, puntatori a funzione. Poi si introduce con un esempio il concetto di libreria (che verra' approfondito nelle lezioni di teoria) e si fa la conoscenza con il debugger.

Esercizio 1: sul debugging

Usare il debugger ddd per trovare cosa non va nel seguente programma C:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
#define N 5

int main(void)
{
  int a[N];
  int i;
  srand(time(NULL));
  i=0;
  while (i<N)
    {
      
      a[++i]=rand()%2;
      printf("iterazione %d\n",i);
    } 
  printf("exiting ...\n"); 
}

in pratica il codice, salvato in “file.c” compilato con

gcc -Wall -pedantic -o ese file.c

ed eseguito con

$ ./ese

va inspiegabilmente in ciclo all'interno del ciclo. Per eseguire in modalita' interattiva di debugging:

  • Compilare con opzione “-g”, ad esempio
    gcc -Wall -pedantic -g -o ese file.c
  • lanciare l'eseguibile usando il debugger come in
    $ ddd ./ese

a questo punto e' possibile fermare il programma durante la sua esecuzione, ispezionare le variabili etc..

Elaborazione: Per i solutori piu' che abili, provare a trovare cosa non va nei due programmi C nei due programmi in esempi.tar

Esercizio 2: liste concatenate di interi

informatica/sol/laboratorio12/esercitazioni/esercitazione1.1329729781.txt.gz · Ultima modifica: 20/02/2012 alle 09:23 (14 anni fa) da Susanna Pelagatti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki