PDA

Visualizza la versione completa : [C] Passaggio di matrice a funzione


FenixDown
03-11-2007, 00:16
ciao a tutti...come si fa a passare una matrice a una funzione?

ho prvato a fare

int miaF(int Matrix[][])
{
...
}

e mi dice
invalid use of array with unspecified bounds

Se faccio

int miaF(int **Matrix){}
e la evoco con

MiaF(MiaMatrice)
mi dice
[Warning] passing arg 1 of `Hin' from incompatible pointer type

ma allora, sta matrice come la devo passare?

In genere, una array di dimensione n, come va passato?

grazie e ciao... :ciauz:

Gianni000
03-11-2007, 00:20
Ciao!
Non si può passare ad una funzione un array per valore ne tanto meno una matrice...
Devi usare i puntatori.
Nel caso delle matrici o array il nome senza le parentesi quadre è già il puntatore al primo elemento.

FenixDown
03-11-2007, 10:01
Originariamente inviato da Gianni000
Ciao!
Non si può passare ad una funzione un array per valore ne tanto meno una matrice...
Devi usare i puntatori.
Nel caso delle matrici o array il nome senza le parentesi quadre è già il puntatore al primo elemento.

scusami, ma non hai detto nulla che già non sapevo...
praticamente, come accedo agli elementi di una matrice passata x riferimento?

Samuele_70
03-11-2007, 10:25
Nel caso di una matrice a due dimensioni devi specificarne almeno una (l'ultima).

Pertanto se la matrice sarà dichiarata così

int Matrix[20][10];

La definizione della funzione sarebbe :
int miaF(int Matrix[][10])
{
...
}
oppure
int miaF(int Matrix[20][10])
{
...
}

Se fosse stata a 3 dimensioni :

int Matrix[5][20][10];

La definizione della funzione sarebbe :
int miaF(int Matrix[][20][10])
{
...
}
oppure
int miaF(int Matrix[5][20][10])
{
...
}

e così via...

Loading