Programación General > C/C++

 array muy grande

<< < (2/2)

m0skit0:

--- Cita de: "kaskade" --- 10 millones ya no.
--- Fin de la cita ---
10 millones entra de sobra. El número que te he puesto arriba (0x80000000) son 2.147.483.648. size_t en sistemas de 32 bits acepta hasta 4.294.967.295.

Saludos

kaskade:
Pues no sé por qué recuerdo que no me dejaba declarar el array con 10000000 ... bueno, lo probaré otra vez para cerciorarme y, si estoy equivocado y realmente me soporta 4GB, probaré a reservarlo a mano tal como me has puesto ahí.

Muchas gracias por la respuesta !

m0skit0:
Pero siempre asegúrate de que el SO te acepta la petición, tal y como te he puesto en el ejemplo. Y siempre solicita la memoria que vayas a utilizar, no toda la disponible "por si acaso". Si no sabes cuánta memoria total vas a usar, haz malloc() sólo de la que estés seguro y después puedes usar realloc() para agrandar ese mismo bloque.

Suerte con ello.

hardyx:
Deberías usar punteros o estructuras para guardar esos números sin tener que reservar toda la memoria. Por ejemplo, yo usaría un array bidimensional de listas de números (std::list<int> en STL). Pero esa cantidad tan enorme de números creo que deberías guadarla en un fichero o en una base de datos, en vez de saturar la memoria. Pero depende del proceso que vayas a realizar. Si es un cálculo intesivo quizá es mejor que estén en memoria, pero usando una tabla funcionará en cualquier ordenador.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa