Oppure

Loading
25/08/09 14:03
scamiolo
Salve a tutti,
spero di non aprire topics già coperti, ho fatto una ricerca e non mi pare. Vengo subito al dunque. Voglio creare una funzione che prenda come argomento il puntatore ad un file, Il file in questione è un formato testo che contiene diverse matrici di elementi che possono avere il valore 1 oppure 0. La funzione deve esplorare il file mettere tutti gli elementi in un array di tipo int tridimensionale (numero di riga, numero di colonna, numero di matrice). La funzione a questo punto deve restituire questo array perchè esso venga utilizzato nel programma principale. Come fare? Ipotizzando che la funzione si chiami store_data(*filename) come la devo dichiare? int ***store_data(*filename) visto che deve restituire un array tridimensionale? Come dichiarare l'array all'interno della funzione? Come usare la funzione return? Ed infine come utilizzare l'array restituito all'interno della funzione principale.
Grazie mille per il vostro aiuto!
aaa
25/08/09 17:45
gigisoft
Postato originariamente da scamiolo:

Salve a tutti,
spero di non aprire topics già coperti, ho fatto una ricerca e non mi pare. Vengo subito al dunque. Voglio creare una funzione che prenda come argomento il puntatore ad un file, Il file in questione è un formato testo che contiene diverse matrici di elementi che possono avere il valore 1 oppure 0. La funzione deve esplorare il file mettere tutti gli elementi in un array di tipo int tridimensionale (numero di riga, numero di colonna, numero di matrice). La funzione a questo punto deve restituire questo array perchè esso venga utilizzato nel programma principale. Come fare? Ipotizzando che la funzione si chiami store_data(*filename) come la devo dichiare? int ***store_data(*filename) visto che deve restituire un array tridimensionale? Come dichiarare l'array all'interno della funzione? Come usare la funzione return? Ed infine come utilizzare l'array restituito all'interno della funzione principale.
Grazie mille per il vostro aiuto!


penso che per restituire un array (di quante dimensioni vuoi tu) sia sufficiente restituire il puntatore al primo elemento.
aaa
25/08/09 21:44
scamiolo
Grazie mille per la risposta
ma quindi all'interno della funzione func lo dichiaro tipo int *array;
Poi quando mi serve mettere qualche numero nell'elemento x,y,z faccio array[x][y][z]=numero, poi lo restituisco con return *array e lo uso all'interno della funzione main come di seguito:

int elementi[1000][300][300];

elementi=funzione

devo fare così? Scusa ma sono un po' alle prime armi con queste cose

grazie

aaa
26/08/09 7:34
gigisoft
Postato originariamente da scamiolo:

Grazie mille per la risposta
ma quindi all'interno della funzione func lo dichiaro tipo int *array;
Poi quando mi serve mettere qualche numero nell'elemento x,y,z faccio array[x][y][z]=numero, poi lo restituisco con return *array e lo uso all'interno della funzione main come di seguito:

int elementi[1000][300][300];

elementi=funzione

devo fare così? Scusa ma sono un po' alle prime armi con queste cose

grazie



dovresti fare qualcosa del genere:


void funzione( ... , int* X)
{
 [...] // istruzioni in cui viene avvalorato l'array
}

int main( ... )
{
 int elementi[1000][300][300];

 [...]

 elementi = funzione( ... , elementi);

 [...]

}



Ciao.

Luigi
Ultima modifica effettuata da gigisoft 26/08/09 7:36
aaa