PDA

Visualizza la versione completa : [C] Passare una matrice come parametro


Downloader
04-02-2008, 18:10
Come da oggetto:
come posso passare una matrice ad una funzione come parametro?

Ci ho provato in vari modi e salse, anche seguendo dei libri di testo, ma mi viene restituito sempre qualche errore strano.

Il compilatore che uso č g++.

tnx

oregon
04-02-2008, 18:15
Facci vedere qualche salsa che hai usato ...

j4ck_andros
04-02-2008, 18:16
se non metti nei parametri formali le dimensione, li devi mettere....

Downloader
04-02-2008, 18:25
Ad esempio:

parametro attuale:
matrice(M,r,c,x);
parametro formale:
int matrice(int M[][10], int r, int c, int x)

cosa c'č di sbagliato?

j4ck_andros
04-02-2008, 18:30
vedendolo cosi č perfetto...
che errore ti da il compilatore?

Downloader
04-02-2008, 18:34
Ecco l'errore:


matrice.c: In function ‘int main()’:
matrice.c:15: error: cannot convert ‘int (*)[(((unsigned int)(((int)c) - 1)) + 1u)]’ to ‘int (*)[10]’ for argument ‘1’ to ‘int matrice(int (*)[10], int, int, int)’

oregon
04-02-2008, 18:35
Scusa ... ci fai vedere tutto il codice effettivo ... ?

Downloader
04-02-2008, 18:39
Non c'č praticamente nulla, lo stavo appena iniziando a scrivere.




int matrice(int M[][10], int r, int c, int x) {

return 0;
}

int main() {
int r,c,x;
scanf("%i", &x, &r, &c);
int M[r][c];
matrice(M,r,c,x);
return 0;
}

oregon
04-02-2008, 18:44
Non puoi dichiarare che la matrice ha una dimensione

[][10]

e poi scrivere

int M[r][c];

Le dimensioni della matrice dichiarata in quel modo devono essere COSTANTI.

Altrimenti, se non sai quanto sara' grande la matrice, la devi allocare DINAMICAMENTE.

Downloader
04-02-2008, 18:46
edit: cosi funge.
scusa.

Loading