Rilegendo l'intestazione della funzione relativa all'esercizio 3 mi
sono accorto di non aver ben chiara una cosa:
la funziona accetta come parametro un puntatore a puntatore a int
ovvero int** M ma da quello che abbiamo studiato un'array
multidimensionale non è un puntatore a puntatore ma bensì un puntatore
ad array ed infatti c'è la necessita di specificare sempre tutte le
dimensioni successive alla prima quando la si passa come parametro di
una funzione ed infatti se si prova a compilare il programma passando
alla funzione un'array multidimensionale precedentemente dichiarata il
programma compila con:
"[Warning] passing arg 1 of `terre_distanti' from incompatible pointer
type."
Quindi teoricamente l'intestazione della funzione dovrebbe essere o
int terre_distanti (int n, int M[][n], int k) oppure int
terre_distanti (int n, int (*M)[n], int k)!
Quindi immagino che ci sia qualche cosa che mi sfugge
Grazie per l'attenzione
Daniele
Julinda ha scritto:
> Anche in questo caso dovete scrivere solo una funzione, non un
> programma.
>
> La matrice e' uno dei parametri di input della funzione, ma nel senso
> che quando
> la funzione verra' chiamata, gli verra' passata una matrice.
> Voi la funzione non la dovete chiamare da nessuna parte, soltanto la
> dovete
> scrivere e mettere in un file .c insieme agli appropriati include.
> Anche qui' come nell'esercizio 2, niente main.
>
> Riguardo alla sua seconda domanda, la funzione, per una data matrice M
> di dimensioni nxn
> e per un dato k deve ritornare il numero di caselle di distanza k
> dall'acqua.
> Ovviamente, se non c'� acqua da nessuna parte, tali caselle non
> esistono, quindi,
> in questo caso, il numero di caselle che stanno a distanza k
> dall'acqua e' 0.
>
> Mi faccia sapere se ha altri dubbi
> Saluti
> Julinda
>
> On Nov 21, 8:28 am, valerio <
valerio...@hotmail.it> wrote:
> > La matrice M viene passata gi� completa o dobbiamo leggere in input i
> > valori nella funzione?
> > Nel caso in cui non c'� acqua cosa si deve ritornare?