Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Escribiendo fuera de una matriz

Estas en el tema de Escribiendo fuera de una matriz en el foro de C/C++ en Foros del Web. Hola A ver si podéis ayudarme: Estoy programando en C++ y tengo una matriz [M][N] que me gustaría que fuera lo más grande posible. Pero ...
  #1 (permalink)  
Antiguo 27/06/2010, 05:29
 
Fecha de Ingreso: junio-2010
Mensajes: 2
Antigüedad: 14 años, 4 meses
Puntos: 0
Escribiendo fuera de una matriz

Hola

A ver si podéis ayudarme:

Estoy programando en C++ y tengo una matriz [M][N] que me gustaría que fuera lo más grande posible. Pero si la defino demasiado grande el programa se bloquea nada más arrancar. Al final es una matriz de 100 x 100.

La matriz está dentro de un for que le va dando incrementos de j y va subiendo de posiciones de la N hasta que através de un bool se da una condicion para poder salir del bucle.

La cuestion es que el programa hace lo que quiero pero no entiendo como puede ser. Porque me llega a posiciones 2000 y 3000 para la N cuando su tamaño es 100.

Gracias,
  #2 (permalink)  
Antiguo 27/06/2010, 09:08
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: Escribiendo fuera de una matriz

Pues pon un poco de codigo porque adivino no somos.....
  #3 (permalink)  
Antiguo 27/06/2010, 10:53
 
Fecha de Ingreso: junio-2010
Mensajes: 2
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Escribiendo fuera de una matriz

Ya he visto el problema. No sé por qué el programa cuando necesita escribir en el valor 301 y solo tiene 300 vuelve al 1 y va reescribiendose. Eso no me sirve.

Sabéis cómo se crea una matriz gigante? Digamos del orden de 1000x50.000 Gracias.
  #4 (permalink)  
Antiguo 27/06/2010, 11:09
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: Escribiendo fuera de una matriz

si te da la maquina simplemente haces:

int main ()
{
char m[1000][50000];
return 0;

}

lo compilas y listo.

Sigo insistiendo si no mostras el codigo no te vamos a poder ayudar.
  #5 (permalink)  
Antiguo 27/06/2010, 15:25
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 14 años, 5 meses
Puntos: 95
Respuesta: Escribiendo fuera de una matriz

Cita:
Iniciado por sam90 Ver Mensaje

Sigo insistiendo si no mostras el codigo no te vamos a poder ayudar.
No hay necesidad de mostrar el código, ya expuso bien su problema.
Mira, esto ya lo habían preguntando antes y lo contesté en este hilo:

http://www.forosdelweb.com/f96/definir-tamano-matriz-815922/

Ahi viene todo explicado a detalle, pero copio y pego el código final en C++

Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.     int **matriz;
  6.     int fila_dinamica;
  7.     int columna_dinamica;
  8.    
  9.     cout<<"Capture dimension de matriz Filas Columnas";
  10.     cin>>fila_dinamica;
  11.     cin>>columna_dinamica;
  12.    
  13.     matriz = new int *[fila_dinamica];
  14.     for(int i = 0; i<=fila_dinamica; i++)
  15.     {
  16.       matriz[i] = new int[columna_dinamica];
  17.     }
  18.    
  19.     cout<<endl<<"Inicia captura de datos: "<<endl;
  20.     for(int i=0;i<=fila_dinamica-1;i++)
  21.     {
  22.             for(int j=0;j<=columna_dinamica-1;j++)
  23.             {
  24.                     cout<<"Capture valor de Matriz["<<i<<"]["<<j<<"]: ";
  25.                     cin>>matriz[i][j];
  26.             }
  27.     }
  28.    
  29.     cout<<"Liberando matriz de ["<<fila_dinamica<<"]["<<columna_dinamica<<"] posiciones....";
  30.      
  31.     for(int i = 0; i<=fila_dinamica-1; i++)
  32.     {
  33.       delete[] matriz[i];
  34.     }
  35.     delete[] matriz;
  36.    
  37.     cout<<endl<<"Array Liberado!";
  38.     cin.get();
  39.     return 0;
  40. }

Etiquetas: fuera, matriz
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:20.