Ho provato vari metodi, ma alla fine l'unico buono era quello segnalato dall'utente stesso che aveva posto la domanda
Ecco quindi quello che ho deciso di fare.
codice:
char a[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char b[] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
static char *daytab[] = {a, b};

int day_of_year(int year, int month, int day)
{
	int leap;
	leap = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
	
	daytab[leap]++;
	
	while (month > 1)
	{
		day += *daytab[leap];
		daytab[leap]++;
		month--;
	}
	
	return day;	
}
Il programma funziona bene. Mi chiedevo solo se c'è qualche modo per eliminare completamente ogni sorta di vettore. Aspetto vostri lumi

PS: se avete del materiale online sui puntatori da linkarmi non esitate a scriverlo