Beh il mio commento era riferito alla frase "sto definendo un int che in teoria sarebbe di 4 bytes" che, relativamente al #define, non è corretta.su questo hai assolutamente ragione e lo so anche io,
Oltre a quanto è già stato detto, aggiungo che nel C99 è stata introdotta la funzione snprintf con la quale è possibile sapere quanto spazio è necessario allocare.