Originariamente inviato da signoredeltempo
perchè usi size_t? Non equivale ad unsigned int?
Non necessariamente; un size_t è un tipo senza segno tale per cui è garantito che possa contenere le dimensioni di qualunque oggetto tu possa creare (di fatto se non erro è definito come il tipo restituito da sizeof). Ovviamente per array di quelle dimensioni usare un int qualunque non è un problema, ma tendo ad usare il size_t abitualmente quando si parla di dimensioni di oggetti più che altro come forma di documentazione ("questa variabile non è un intero qualunque, ma è la dimensione di qualcosa").
Il while, non controlla la condizione all'inizio (anziché alla fine)?
Il while controlla all'inizio, ma tu fai degli incrementi a metà del ciclo, per cui fa a tempo a sforare prima che la successiva iterazione del while si "accorga" che hai sforato.