C/Visual C - Ayuda urgente Borland C++

 
Vista:

Ayuda urgente Borland C++

Publicado por SONIA (1 intervención) el 31/08/2001 19:00:13
Estoy trabajando con un programa en Borland C++ 3.1. En el programa principal declaro la siguiente variable:

// punteros a las tablas para almacenar los datos de las distribuciones
float far *Distribucion[5];

y hago uso de la función:

// Reserva memoria para las tablas de las distribuciones
void ReservarMemoria()
{
int i;
for(i=0;i<10;i++)
{
//reserva memoria para las tablas
Distribucion[i]= (float far *)farmalloc(numerodemuestras*bytesporfloat);
//si no hay memoria activa el error
if (!Distribucion[i])
{
//si hay error muestra mensaje y sale del programa
//escribe el aviso
Marco(9,12,72,14);
Escribe(11,13,"NO HAY MEMORIA SUFICIENTE PARA LAS TABLAS DE DATOS");
//espera a que pulsen una tecla
getch();
//sale del programa
Salir();
}
}
}

Me encuentro con el problema de que a la hora de reservar memoria en tiempo de ejecución con la función anterior me veo obligada a trabajar con valores de la variable "numerodemuestras" menores a 8192. ¿Es que existen limitaciones con Borland C++ a la hora de trabajar con bloques de memoria dinámica? Si es así, ¿que tamaños máximos puedo manejar?¿se os ocurre alguna solución para trabajar con bloques mayores?

Muchísimas gracias por ayudarme. Sonia
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:Ayuda urgente Borland C++

Publicado por Endos (143 intervenciones) el 31/08/2001 19:49:21
Sobre Ms-Dos la memoria está bastante limitada, aunque para 10 asignaciones no deberías tener problemas.
Casi diria que el problema está en que reservas espacio para 5 punteros "float far *Distribucion[5];" y luego intentas asignar 10 "for(i=0;i<10;i++)" con lo que estás 'pisando' algo con tu código.
Con el compilador en marcha y dependiendo lo que ocupe tu programa no deberias tener problemas en alojar unos 150Kb y sin el compilador en marcha unos 300Kb como mínimo (aunque como he dicho, depende del tamaño del ejecutable).

Saludos,
Endos.
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