Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/08/2010, 22:05
Avatar de gvite666
gvite666
 
Fecha de Ingreso: abril-2010
Mensajes: 65
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Problema Polimorfismo y Array bidimensiona[N][N]

hola Kandorf tu problema es que un array es forsoso que le des un tamaño en especial para que el compilador sepa cuanta memoria reservar...oooo...utilizar "Memoria dinamica" que es lo que tu quieres, esto se utiliza para cuando, declaras un vector o una matriz pero no sabes cual es su tamaño y tienes que reservar memoria en tiempo de ejecucion.
Ejemplo:
Código C++:
Ver original
  1. int a;
  2. int b;
  3. int **Matriz;//declaras tu puntero de matriz (todavia no sabes que tamaño quieres)
  4. cout<<"Tamaño de columnas: ";
  5. cin>>a;
  6. cout<<"Tamaño de filas:";
  7. cin>>b;
  8. Matriz=new int*[a];//con "new" reservas memoria por el momento de un puntero a vector
  9. for(int i=0;i<a;i++)
  10.     Matriz[i]=new int[b];//reservas memoria para cada elemento a un elemento b (una matriz)
  11. /*con esto ya puedes usar una Matriz[a][b]*/
Pero mucho cuidado cuando reservas memoria porque el sistema no sabe cuando ya la dejaste de usar, asi que en C++ tienes que liberarla, para esto se usa tu destructor, (aclaro para cuando tu variable es un atributo, cuando solo es una variable local la tienes que liberar en tu misma funcion) en el tienes que liberar el espacio reservado asi:
Código C++:
Ver original
  1. for(i=0;i<a;i++)
  2.     delete [] Matriz[i];//libera el espacio de b para cada elemento de a
  3. delete [] Matriz;//liberas todo el espacio restante que reservaste.
Con esto te aseguras de reservar solo el espacio que se es necesario
Espero me halla explicado.
Saludos.