Riempimento matrice riga per riga

di il
5 risposte

Riempimento matrice riga per riga

Ciao a tutti, vi espongo il mio problema:
devo ottenere una matrice bidimensionale che contenga una serie di vettori unidimensionali di stessa lunghezza, con l'unica restrizione che i vettori devono essere unici all'interno della matrice.
Ho cominciato a scrivere il codice. ho realizzato una funzione che genera un vettore in maniera casuale e che restituisce il puntatore a questo vettore:
int* genera_vettore()       
{...
          return(vettore);
}
Poi avevo pensato di assegnare il vettore generato alla riga i-esima della matrice, purtroppo mi da errore, come posso fare?

matrice [lun_vettore] [num_vettori];
    
    while( i < num_vettori)
    {
        
       matrice = genera_vettore();/*qui mi da errore e non so in che maniera assegnarlo*/
        i++;
    }
Grazie in anticipo per l'aiuto!

5 Risposte

  • Re: Riempimento matrice riga per riga

    Scusate sono nuovo: Linguaggio C.
  • Re: Riempimento matrice riga per riga

    
    int* genera_vettore()       
    {...
              return(vettore);
    }
    
    si può vedere questo codice?
    Aiutino: Cosa sai delle variabili locali e globali?
  • Re: Riempimento matrice riga per riga

    Il problema non è la visibilità delle variabili, è che non so come assegnare un vettore unidimensinoale alla riga i-esima di un vettore bisdimensionale. Non so a cosa ti serva il codice di quella funzione cmq sia te lo metto:
    
    int* genera_vettori(int dim)       
    {
    
         int *vet = (int *) malloc(sizeof(int) * dim);
    
         randomize;
    
         for(i = 0; i < dim; i++)
         {                  
               vet[i] = random(dim);           
         }
         return(vet);
    }
    Il mio problema è che visto che la mia funzione ritorna il puntatore all'array che ho creato non so come fare in modo di copiarlo nella riga i-esima della matrice.
    Grazie per l'interessamento!
    Attendo notizie!!!
  • Re: Riempimento matrice riga per riga

    Matrice [lun_vettore] [num_vettori];

    Qui hai già una matrice statica che occupa quindi un posto in memoria. Credo anche che sia definito male perche prima devi definire il numero di righe e poi quello delle colonne.
    Poi tu allocchi altra memoria con la funzione sopra. Se invece la tua matrice lo definisci come:
    
    int *matrice[num_vettori];
    
    allora ad ogni riga li puoi assegnare il vettore allocato con
    
    int i = 0;
           
            while( i < num_vettori)
            {
               
               matrice[i] = genera_vettore();
                i++;
            }
    
    
  • Re: Riempimento matrice riga per riga

    Per la definizione della matrice hai ragione tu, inaftti al definizione corretta è:
    matrice [num_vettori] [lun_vettore];
    E grazie anche per il resto, è una buona idea!
Devi accedere o registrarti per scrivere nel forum
5 risposte