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
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.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; }
Ho provato a crearlo in questo modo
ma ottengo parecchi errori nella compilazione, tutti identici, che a quanto ho capito mi dicono che l'inizializzazione non è andata a buon fine.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} };
Qualcuno saprebbe aiutarmi?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]
E inoltre, chi mi può linkare del materiale online dove viene spiegato per bene il discorso sui puntatori?
Grazie mille in anticipo a tutti![]()

						
					
					
					
						
  Rispondi quotando
						
						