Ciao ragazzi, è da un po' che non scrivo!! Torno qui per chiedervi aiuto per provare a capire meglio l'uso dei puntatori; in particolare, non riesco ancora a capire per bene come usare i vettori di puntatori, sostituendoli all'uso dei vettori bidimensionali per esempio.

Come al solito, stavo provando a fare qualche esercizio dal libro. In breve il succo è questo: restituire il giorno dell'anno esatto a partire da una data.
Ecco la versione con vettori bidimensionali
codice:
#define MONTH_IN_YEAR 12
// Creiamo un vettore bidimensionale per gestire i casi in cui l'anno è bisestile; 
//inoltre creiamo 13 colonne per far cadere gli indici dei mesi proprio tra 1 e 12;
static char daytab[2][MONTH_IN_YEAR+1] = 
{
	{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
	{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
};


int day_of_year(int year, int month, int day)
{
	int i, leap;
        //controlla se l'anno è bisestile; restituisce 1 se è bisestile, 0 altrimenti
	leap = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0; 
	
	for (i = 1; i < month; i++)
		day += daytab[leap][i];
		
	return day;	
}
Altro paio di maniche è utilizzare invece i puntatori al posto di indici e vettori, come mi richiede l'esercizio. In particolare, dovrei modificare l'array bidimensionale daytab per farlo diventare un puntatore.

Ho provato a crearlo in questo modo
codice:
static char *daytab[13] = 
{
	{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
	{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
};
ma ottengo parecchi errori nella compilazione, tutti identici, che a quanto ho capito mi dicono che l'inizializzazione non è andata a buon fine.
codice:
e5.9.c:9:2: warning: braces around scalar initializer [enabled by default]
e5.9.c:9:2: warning: (near initialization for ‘daytab’) [enabled by default]
Qualcuno saprebbe aiutarmi?
E inoltre, chi mi può linkare del materiale online dove viene spiegato per bene il discorso sui puntatori?
Grazie mille in anticipo a tutti