Pedir mucha memoria al S.O.

10/09/2003 - 19:54 por Diego | Informe spam
Buenas, estoy realizando un programa que necesita pedir al sistema operativo
del orden de unos 40 megas de memoria dinamica, el caso es que usando malloc
esto me ha sido completamente imposible pues para tamaños superiores a un
mega de memoria dinamica reservada, comienzo a obtener errores (al parecer
tiene algo que ver con el tamaño del heap o algo asi).
Mi duda es si hay alguna metodo para poder pedir al sistema operativo la
cantidad de memoria dinamica que necesite. Muchas gracias.
 

Leer las respuestas

#1 christian
10/09/2003 - 20:44 | Informe spam
asi:

#include <windows.h>

char* my_memalloc(DWORD size)
{
unsigned char* ptr = NULL;

ptr = (unsigned char*)::GlobalAlloc(GPTR,size);

return ptr;
}


void my_memfree(unsigned char* ptr)
{
try
{
if(ptr)
::GlobalFree(ptr);
}catch(...)
{
}
}

void testmem()
{
unsigned char* ptr = NULL;

ptr = my_memalloc(40000000L);

if(ptr)
{
//todo ok

//usa la memoria en ptr
//no pierdas el puntero y recuerda liberarle
//es memoria de windows, si no la liberas
//queda asignada aunque termines el programa.

strcpy((char*)ptr,"CHRISTIAN SALAZAR");

my_memfree(ptr);
}
else
{
// revisa la configuracion de memoria virtual de tu pc
// demasiado extraño este error en condicionesnormales
}

}

Preguntas similares