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++ - Allocazione dinamica matrici
Forum - C/C++ - Allocazione dinamica matrici

Avatar
t.kelly (Normal User)
Newbie


Messaggi: 1
Iscritto: 11/10/2011

Segnala al moderatore
Postato alle 15:14
Martedì, 11/10/2011
Questo topic è stato chiuso dal moderatore

Buona sera, sto studiando l'allocazione dinamica per le matrici in c++, ho scritto un pezzo di codice che scrive all'interno di una matrice e poi legge, ma non riesco a capire dove sbaglio perchè appena inserisco un elemento il programma si blocca. Posto il codice e spero che ci sia qualcuno che sappia aiutarmi.

#ifndef MATRICE_H
#define MATRICE_H

typedef double tipoelem;

class matrice {
  public:
    matrice();
    matrice(int, int); /* costruttore */
    tipoelem leggimatrice(int, int);
    void scrivimatrice(int, int, tipoelem);
  private:
    int righe;
    int colonne;
    tipoelem **elementi;
};
#endif

#include <iostream>
#include "matrice.h"

using namespace std;

matrice::matrice()
{
    righe = colonne = 0;
}
// costruttore
matrice::matrice(int c, int r){
  colonne = c;
  righe = r;
  // allocazione dinamica della matrice
  int i,j;
  elementi = new tipoelem* [righe];
  for (i=0; i < righe; i++)
    elementi = new tipoelem[colonne];
  // inizializzazione degli elementi
  for (i=0; i < righe; i++)
         for(j=0; j < colonne; j++)
                elementi[j] = 0; cout << elementi[j] << ' ';
            
}

tipoelem matrice::leggimatrice(int i, int j)
{
  return elementi[j];
}
void matrice::scrivimatrice(int i, int j, tipoelem e)
{
  elementi[j] = e;
}

#include <iostream>
#include "matrice.h"

using namespace std;

int main()
{
    matrice m;
    int nrighe,ncolonne = 0;
    int v,z;
    tipoelem elem;
    
    cout << "Inserisci numero righe:\n";
    cin >> nrighe;
    cout << "Inserisci numero colonne:\n";
    cin >> ncolonne;
    
    cout << "Scrivi matrice:\n";
    for(v=0; v < nrighe; v++)
            for(z=0; z < ncolonne; z++)
                  {cin >> elem;
                  m.scrivimatrice(v,z,elem); }

      
    cout << "La matrice inserita e':\n";
    for(v=0; v < nrighe; v++)
            for(z=0; z < ncolonne; z++)
                cout << m.leggimatrice(v,z) << ' ';
                
    system("PAUSE");
    return 0;
}

PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 15:29
Martedì, 11/10/2011
Questo topic è in violazione di una o più norme del regolamento: http://www.pierotofy.it/pages/extras/forum/9/3839-regolame ... .
    
Dopo averlo letto riapri un nuovo topic assicurandoti di aver rispettato le regole. Grazie per la tua pazienza.


Ingegnere Informatico
https://ldlagency.it
PM