Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Array, array e ancora array...
Forum - C/C++ - Array, array e ancora array...

Avatar
edo42 (Member)
Pro


Messaggi: 102
Iscritto: 30/07/2009

Segnala al moderatore
Postato alle 18:00
Venerdì, 02/10/2009
Ho un problema che mi sembra valga la pena di postare:
Ho un array multidimensionale, mettiamo sia ciao[2][3] e un altro array normale che si chiama ciao2[3]. Come posso fare a copiare l'array ciao[1] dentro l'arrau ciao2? In pratica voglio prendere un array contenuto dentro il multidimensionale e copiarlo dentro un'altro.

Grazie in anticipo per tutte le risposte.

PM Quote
Avatar
ingMark (Ex-Member)
Pro


Messaggi: 176
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 18:18
Venerdì, 02/10/2009
Se ti può aiutare a comprendere, i vettori a più dimensioni vedili come vettori di vettori.

Quella che hai tu è una matrice (il tuo array bidimesionale).
Quindi tornando alla notazione di prima (vettore di vettori) è come se in ogni cella del tuo vettore ciao[] ci fosse un altro vettore.

Quindi una volta che hai capito questo copiare il vettore in un altro vettore diventà una banalità
ti basta un semplice ciclo for.
Una volta che hai scelto quale riga della matrice vuoi copiare

Codice sorgente - presumibilmente Plain Text

  1. for(i = 0; i< lung_vett; i++)
  2.     ciao2[i] = ciao[riga_che_hai_scelto][i];


:k:

PM Quote
Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 18:28
Venerdì, 02/10/2009
tieni presente che l'array multidimensionale funziona per righe e per colonne mentre l'array classico solo per righe

immagina l'array ciao[2][3] (ponendo che sia int) completato cosi:

1 5
4 8
6 3

le cose che puoi fare sono 2:
o copi l'intero contenuto in modo sequenziale nel vettore ciao2 che deve essere di dimensione 6 e quindi verrebbe cosi:
1 5 4 8 6 3
oppure copi una sola riga nel vettore ciao2 e quindi assumerà questi valori:
1 5


nel primo caso io lavorerei cosi:

Codice sorgente - presumibilmente C++

  1. int ciao[2][3];
  2. int ciao2[6];
  3. int i,j;
  4. int c=0;
  5.  
  6. //  carichi il vettore ciao
  7. ...
  8. //
  9. for(i=0;i<3;i++)
  10.     {
  11.      for(j=0;j<2;j++)
  12.        {
  13.         ciao2[c]=ciao[i][j];
  14.         c++;
  15.        }
  16.      }



mentre nel secondo caso lavorerei cosi:

Codice sorgente - presumibilmente C/C++

  1. int ciao[2][3];
  2. int ciao2[2];
  3. int i;
  4.  
  5. //  carichi il vettore ciao
  6. ...
  7. //
  8.  
  9. for(i=0;i<2;i++)
  10.     {
  11.      ciao2[i]=ciao[0][i];
  12.      }



spero di esser stato utile e di aver centrato il problema

PM Quote
Avatar
edo42 (Member)
Pro


Messaggi: 102
Iscritto: 30/07/2009

Segnala al moderatore
Postato alle 19:21
Venerdì, 02/10/2009
Grazie molte ancora; credevo fosse una cosa molto più difficile...

PM Quote
Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 19:35
Venerdì, 02/10/2009
nulla ;)

PM Quote