lezione 03

struct ed enum

struct, enum e dati strutturati.

livello: intermedio durata: 26 min output: modelli dati badge: c essentials

struct

typedef struct {
  char name[16];
  int shots;
} Project;
Project p = {"Nova", 12};

enum

typedef enum { LEVEL_BASE, LEVEL_ADV } Level;
Level lvl = LEVEL_BASE;

array

int nums[3] = {1, 2, 3};
printf("%d\n", nums[0]);

puntatori

int value = 10;
int *ptr = &value;
printf("%d\n", *ptr);

esercizi

allocalo un buffer e libera la memoria.

int *buf = malloc(4 * sizeof(int));
buf[0] = 42;
free(buf);

panoramica

In questo capitolo su struct ed enum lavoriamo su struct, enum, array, puntatori per creare micro-pattern riutilizzabili.

lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali.

badge: c essentials

obiettivi

  • capire e applicare struct in uno scenario reale
  • capire e applicare enum in uno scenario reale
  • capire e applicare array in uno scenario reale
  • capire e applicare puntatori in uno scenario reale

scheda rapida

typedef struct {
  char name[16];
  int shots;
} Project;
Project p = {"Nova", 12};

adatta questo scheletro agli esempi della lezione.

tips

  • compila con warning elevati
  • controlla ogni return code
  • libera la memoria allocata
  • usa header guard
  • mantieni funzioni corte
  • mantieni struct leggibile

tip: documenta ogni scelta architetturale.

mini progetto

gestisci un buffer dinamico in sicurezza.

  • alloca
  • usa
  • libera

output atteso: nessun leak.

checklist

  • ho eseguito gli snippet e controllato l'output
  • ho annotato almeno 2 trade-off
  • ho completato il mini progetto
  • ho salvato un riepilogo personale
start a brief