Toinen usein kätevämpi tapa on käyttää käännösaikaista sizeof - operaattoria, joka palauttaa muuttujan tai tyypin tarvitseman muistitilan. Esimerkiksi
char jono[80]; int koko; ... koko = sizeof(jono);
sijoittaisi muuttujalle koko arvon 80.
Voisimme siis kirjoittaa kutsuja:
char jono[80]; ... lue_jono(jono,sizeof(jono)); ... f_lue_jono(f,jono,sizeof(jono)); ... kopioi_jono(jono,sizeof(jono),"Kissa"); cin.getline(jono,sizeof(jono));
sizeof - operaattorille voidaan antaa parametrinä myös tyypin nimi:
typedef struct { int pv; char kk_nimi[20]; int vv; } Pvm_tyyppi; ... int vuosi; Pvm_tyyppi pvm; ... ... sizeof(vuosi) ... /* Esim 2 tai nykyisin 4 toteutuksesta riippuen */ ... sizeof(int) ... /* - " - */ ... sizeof(char) ... /* Aina 1 */ ... sizeof(Pvm_tyyppi) /* Esim. 4+20+4 == 28 tot. riip. */ ... sizeof(pvm.kk_nimi) /* 20 */ ...