C/Visual C - Problema de memoria con arreglos

 
Vista:

Problema de memoria con arreglos

Publicado por Emile (1 intervención) el 12/01/2005 19:23:11
Hola. Tengo un programa que necesita un arreglo para almacenar 100 mil números de punto flotante, pero el compilador me da un mensaje de que es muy largo, he probado también con 10 mil datos y si funciona. Me dijeron que es porque el C utiliza solo 4 megas de la memoria independientemente del tamaño que ésta tenga y que debo cambiar esos 4 por mayor espacio, pero no se como hacerlo. Ayúdame por fa.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema de memoria con arreglos

Publicado por Googol (255 intervenciones) el 12/01/2005 21:10:49
Hola

¿Cómo lo estás haciendo? Dices que el compilador te da error, es decir, que ¿ni siquiera tienes la posibilidad de ejecutar el programa? En ese caso debes estar declarando el array como una variable normal:

float datos[100000];

Yo lo haría con un puntero, y luego pediría memoria dinámica:

float *datos;
datos = new float[100000];

Yo lo acabo de probar y no me falla. Cien mil flotantes suena muy espectacular, pero no llegan a ocupar ni medio mega...

Medio mega es mucho para una variable local (en la pila), pero no lo es para el heap (la memoria dinámica).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema de memoria con arreglos

Publicado por jantonio (4 intervenciones) el 13/01/2005 01:22:39
!Que, que
El problema, como bien lo comenta el primer reply, es que necesitas memoria
dinamica, esta la puedes solicitar como:

float *datos;

C : data = (float *)malloc(sizeof(float)*10000);
C++ : datos = new float[100000];

Espero te sirva, obviamente despues de solicitar la memoria hay que
checar que sea distinto de NULL el apuntador, si es NULL indica que no logro
reservar la memoria.

Chao y suerte.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema de memoria con arreglos

Publicado por El Mogur (202 intervenciones) el 13/01/2005 09:41:58
Hola!

Solo una aclaración... new no devuelve NULL cuando no hay memoria, sino que genera una excepción.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar