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

Vetores y arreglos

Estas en el tema de Vetores y arreglos en el foro de C/C++ en Foros del Web. Hola todos, Pensé que había solucionado el problema de grandes vectores o matrices usando la biblioteca vector, pero no. Por alguna razón la biblioteca me ...
  #1 (permalink)  
Antiguo 05/06/2008, 07:59
 
Fecha de Ingreso: mayo-2008
Ubicación: Caracas
Mensajes: 35
Antigüedad: 16 años
Puntos: 1
Pregunta Vetores y arreglos

Hola todos,

Pensé que había solucionado el problema de grandes vectores o matrices usando la biblioteca vector, pero no. Por alguna razón la biblioteca me permite declarar vectores muy grandes, mas cuando les asigno valores, todos los elementos conservan el ultimo valor asignado.

El problema es fácil de entender:

Tengo un archivo con tres columnas (separadas por espacios, tabuladores o lo que sea)
Cada columna representa las coordenadas X, Y y Z respectivamente. Pero son archivos con más de 250000 renglones. Lo que se quiere es crear una matriz que tome los valores que indica el archivo.

Inicialmente trabaje de la siguiente manera:

Código:
#define max 500000              //Define máximo de elementos que lee la matriz.

double Matriz[max][3]          //Declaro una matriz double con max filas y 3 columnas.

int main()
{
	Codigo ….
}
El código es correcto. Pero como que el espacio de una matriz se reserva por bloques en la memoria, no es posible ejecutarlo sin que se guinde la maquina.

Espero respuesta y muchas gracias.
  #2 (permalink)  
Antiguo 05/06/2008, 08:00
 
Fecha de Ingreso: mayo-2008
Ubicación: Caracas
Mensajes: 35
Antigüedad: 16 años
Puntos: 1
Respuesta: Vetores y arreglos

No le paren a la falta del ";" en la declaracion de la matriz ;)
  #3 (permalink)  
Antiguo 05/06/2008, 08:35
 
Fecha de Ingreso: abril-2008
Mensajes: 141
Antigüedad: 16 años
Puntos: 0
Respuesta: Vetores y arreglos

En la declaracion le estas diciendo que te cree un array de max casillas, y dentro de cada una otro array de 3 casillas. Lo que tu intentas hacer me parece que es al reves. Primero haces el array de 3 casillas y en cada casilla otro array de max.

Es decir:

double Matriz[3][max]


A ver si te sirve de ayuda.
  #4 (permalink)  
Antiguo 05/06/2008, 08:57
 
Fecha de Ingreso: mayo-2008
Ubicación: Caracas
Mensajes: 35
Antigüedad: 16 años
Puntos: 1
Respuesta: Vetores y arreglos

Gracias,

Por lo que entiendo eso sería una matriz de 3 filas* max columnas. Pero el problema es el mismo. Tiene que ver con la reserva de memoria en el pc. Teoricamente el sistema operativo debería administrar la memoria. Pero el arreglo es un solo bloque.

Además ya probé esa opción cuando hoce un programa para transponer matrices ;)
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:35.