Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Creare funzione che restituisce array tridimensionali
Forum - C/C++ - Creare funzione che restituisce array tridimensionali

Avatar
scamiolo (Normal User)
Newbie


Messaggi: 4
Iscritto: 25/08/2009

Segnala al moderatore
Postato alle 16:03
Martedì, 25/08/2009
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!

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 695
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 19:45
Martedì, 25/08/2009
Testo quotato

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.


Le cose si fanno per bene o non si fanno affatto
PM Quote
Avatar
scamiolo (Normal User)
Newbie


Messaggi: 4
Iscritto: 25/08/2009

Segnala al moderatore
Postato alle 23:44
Martedì, 25/08/2009
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


PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 695
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 9:34
Mercoledì, 26/08/2009
Testo quotato

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:

Codice sorgente - presumibilmente C#

  1. void funzione( ... , int* X)
  2. {
  3.  [...] // istruzioni in cui viene avvalorato l'array
  4. }
  5.  
  6. int main( ... )
  7. {
  8.  int elementi[1000][300][300];
  9.  
  10.  [...]
  11.  
  12.  elementi = funzione( ... , elementi);
  13.  
  14.  [...]
  15.  
  16. }



Ciao.

Luigi

Ultima modifica effettuata da gigisoft il 26/08/2009 alle 9:36


Le cose si fanno per bene o non si fanno affatto
PM Quote