• Viernes 8 de Noviembre de 2024, 14:40

Autor Tema:  Matriz Dinamica  (Leído 1392 veces)

apokryphos

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Matriz Dinamica
« en: Domingo 3 de Diciembre de 2006, 11:44 »
0
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

NiCH

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Matriz Dinamica
« Respuesta #1 en: Domingo 3 de Diciembre de 2006, 12:44 »
0
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

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Matriz Dinamica
« Respuesta #2 en: Domingo 3 de Diciembre de 2006, 13:12 »
0
En el caso de tipos primitivos es mejor usar malloc/free al no necesitar llamadas a constructores/destructores.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Matriz Dinamica
« Respuesta #3 en: Domingo 3 de Diciembre de 2006, 20:53 »
0
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:

Código: Text
  1.  
  2. int* ptrMatriz;
  3.  
  4. ptrMatriz = new int( num_filas * num_columnas );
  5. // o con malloc:
  6. // ptrMatriz = malloc( sizeof( int ) * numfilas * num_columnas );
  7.  
  8. posicion = ptrMatriz[ tamanio_filas * fila + columna ];
  9.  
  10.  

Suerte,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip