Programación General => C/C++ => Mensaje iniciado por: apokryphos en Domingo 3 de Diciembre de 2006, 11:44
Título: Matriz Dinamica
Publicado por: apokryphos en Domingo 3 de Diciembre de 2006, 11:44
bueno la pregunta es la siguiente como hago para declarar un matriz dinamica por que para una matriz sencilla se necesita un vector y a ese vector se le declaran dos indices y asi pero para la matriz dinamica es algo distinto y estube leyendo un libro de luis joyanes y zanoero pero no entendi mucho por que carajo estaba trabajando con dobles punteros y no lo pude adaptar de antemano muchas gracias por las posibles respuestas
Título: Re: Matriz Dinamica
Publicado por: NiCH en Domingo 3 de Diciembre de 2006, 12:44
Buenas, es mi primer post en este foro que considero interesante, a ver si te puedo ayudar:
para trabajar con memoria dinámica deberías usar los operadores new y delete junto con punteros.
un sencillo ejemplo:
const int TAM = 10; // tamaño del array. int *ptrArray = 0; // inicializamos un puntero.
if ( ( ptrArray = new int [TAM] ) == NULL ) // o también if ( !ptrArray ) cout << "error de asignación de memoria"; else cout << "empezamos a trabajar con el array";
delete [] ptrArray;
Si alguien le encuentra algún error no duda en corregir, estamos aquí para aprender.
Salu2
Título: Re: Matriz Dinamica
Publicado por: Eternal Idol en Domingo 3 de Diciembre de 2006, 13:12
En el caso de tipos primitivos es mejor usar malloc/free al no necesitar llamadas a constructores/destructores.
Título: Re: Matriz Dinamica
Publicado por: Geo en Domingo 3 de Diciembre de 2006, 20:53
Para manejar matrices dinámicas puedes hacerlo de dos formas: mediante un puntero de doble subídince:
int **ptrMatriz;
o con un sólo vector e indexando de la siguiente forma: