t.kelly (Normal User)
Newbie
Messaggi: 1
Iscritto: 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;
}
|