Aina kun ohjelmassa esiintyy osoitintyyppinen muuttuja, pitää muistaa, että ennen sen käyttöä se on alustettu joko sijoituksella toiseen osoitteeseen tai osoittimelle on annettu arvo malloc- funktiolla tai new- operaattorilla (joihin palataan myöhemmin!). Siis aina:
int *osoitin; /* Aina joko */ /* 1 */ osoitin = &muuttuja; /* tai */ /* 2 */ osoitin = malloc(...); // tai /* 3 */ osoitin = new...
Noudattaako aliohjelman parametrit tätä sääntöä?
void laske_verot(double brutto, double pros, double *pros_osuus, double *netto)
Kyllä, koska kutsu
laske_verot(10000.0,40.2,&verottajalle,&itselle)
tarkoittaa sijoitusta aliohjelman parametreihin:
brutto = 10000.0 pros = 40.2 pros_osuus = &verottajalle netto = &itselle