Bueno resulta que estoy haciendo un programa en DOS, uso el BC 3.1, y quiero cargar un arbol o lo que sea usando TOOOOODA la memoria que se pueda acceder, supuestamente debería poder usar otros Segmentos con punteros Far, pero me parece que solo uso la memoria de un segmento.
Ya probe usando definiciones de variables del tipo far y huge, seteando el compilador en distintos modos (tiny, small, large, huge, etc).
Y la verdad que a la hora de los echos no veo que pueda tener acceso a más memoria, masomenos siempre es la misma cantidad.
Para probar cuanta memoria podia utilizar estuve usando un codigo de este tipo:
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
void main(void)
{
int far *a;
unsigned long i=0;
do
{
cout <<"HolaMundo"<<i++;
a=new int far [20L];
printf(" %Fp\n",a);
}
while (!kbhit());
}
Donde lo que hago es reservar y reservar memoria sin liberarla para poder tener una idea de cuanta memoria puedo llegar a reservar efectivamente. Lo demás es para ver que dirección de memoria voy asignando y cuando comienza a asignar Null osea 0000:0000 o bien 0000.
Lo que hice fue modificar donde dice far por huge (o nada) y probando distintos modos de compilación, etc, y observo que siempre estan variando 3 digitos hex siendo en total segun interpreto 4+4=8 los que podrian variar, claro que si descontamos la memoria del DOS y del entorno sería menos pero de todas maneras deberia ser un poco más segun entendi en un articulo que adjunto.
GRACIAS por leer y espero muuuuuuchas respuestas con buenas soluciones o al menos con direcciones de correo o sugerencias de a quien preguntar. GRACIAS !!