Vector tamaño maximo 32768

spyfly
04 de Abril del 2006
Hola, queriamos crear un vector de tamaño 6 millones, pero el visual c++ nos muestra un error, y solo nos deja crear uno hasta 32768.¿ Como podemos crear uno de tamaño mayor?

hiei
04 de Abril del 2006
Piensa una cosa...
Seguramente estaras trabajando en X86-32 (o sea ia32, como i386/486/P1-2-3-4 o su competencia de AMD pero todos sobre 32 bits) -De todas formas si trabajas en 64 bits, Visual C WindosLoquesea no tiene nada que balga la pena...- asi que piensa esto:
Un arreglo tiene que estar en la memoria y la memoria que puede direccionar un procesador de 32 bits es 2^32 (dos a la treintaidos) que da una sifra un poco superior a los 4 millones (no llega a los 5) Asi que en el mejor de los casos (caso ideal que puedas usar TODA la memoria como array y que tengas el codigo y demas mierda junto con el OS en otro segmento haciendo uso de la memoria virtual hasta recagarte porque las maquinas de hoy tiene 1 o 2 Gb de RAM como cosa bestial) podras tener un array de 2^32 bytes (ni hablemos de poner ints shorts y mucho menos longs o doubles que ocupan 2 4 u 8 bytes segun sea el tipo de datos)

Busate otra solucion al problema (dudo que realmente necesites esa cantidad mapeada en memoria al mismo tiempo) o si realmente necesitas tener 6Millones de no se que buscate otra arquitectura (te recomiendo PowerPC de 64 bits, X86-64, UltraSPARC de 64 o PARISC de 64 o al menos Alpha DEC de 64 bits... porque en 32 bits no es factible directamente por rasones de diseño...

spyfly
04 de Abril del 2006
Si que necesitamos un vector de ese tamaño. Nosotros recibimos 100000 datos por segundo durante 60 segundos y queremos almacenarlos. Como el vector no nos llega lo que hemos hecho es meterlo en una matriz que si que da 6 millones de valores. Por cierto la matriz es ULNG.
Gracias.