Está en la página 1de 2

Programacin en C++

Matrix: Reservacin y liberacin dinmica de memoria para una matriz de dos dimensiones usando NEW y DELETE
#include <iostream> #include <stdlib.h> #include <iomanip.h> #include<conio.h> class matrix { double **p; int filas; int columnas; public: double get(int fil,int col); matrix(int fil,int col); void show(); ~matrix(); }; matrix::~matrix() { cout << "Destruyendo un objeto Matrix"; int j,i; for (j=0;j<columnas;j++) //Indexa cada fila delete [] *p; //Libera cada fila delete [] p; //Libera el vector de punteros a filas } matrix::matrix(int fil,int col) { filas=fil; columnas=col; int i; int j; //Ahora se pretende separar memoria para una matriz //Reservando memoria para un puntero que contendr las direcciones //de los punteros filas. // y luego reservando memoria para los vectores fila;

//un puntero de los punteros que apuntan a los //vectores fila

//Constructor //Destructor

p=new double*[filas];

if (!p) cout << "Error de asignacin \n"; for (i=0;i<filas;i++) { p[i]= new double[columnas]; //A cada puntero se le asignar direccin de //el vector de filas.

//Un puntero que apunta a los punteros //De los vectores fila //la dimensin da el numero de filas

if (!(p[i])) cout << "Error de asignacin \n"; } cout << "Matriz Creada \n"; for (i=0;i<filas;i++) for (j=0;j<columnas;j++) p[i][j]=i; cout << "Matriz Inicializada \n"; } void matrix::show() { int i; int j; for (i=0;i<filas;i++) { for (j=0;j<columnas;j++) cout << setw(5) << p[i][j]; cout << "\n"; } }

//la dimensin da el numero de columnas //iniciacin de la matriz

//Indexa cada fila //Indexa cada elemento de cada fila //cada elemneto=0

//Indexa cada fila //Indexa cada elemento de cada fila //cada elemento = nmero de fila

main() { int f , c; cout << "Ingrese el numero de filas -> "; cin >> f; cout << "Ingrese el numero de columnas -> "; cin >>c; matrix matriz1(f,c); matriz1.show(); system("PAUSE"); } Ing. Carlos Fernando Jimnez Pugliese Bucaramanga Febrero 14 de 2003 carlosfjimenez@latinmail.com charlytospage@yahoo.com.mx http://geocities.com/charlytospage

También podría gustarte