Problemas de memoria...
Hola, tengo un problema con una instruccion NEW, cuando la instruccion falla al reservar espacio de memoria me regresa un valor 0, alguien sabe como puedo hacer que mi programa pueda utilizar mas memoria del sistema, hacer su heap mas grande, o si existe otra solucion para cuando new falla.
De antemano gracias
De antemano gracias
En cualquier compilador est谩ndar el operador new no devuelve 0 (desde el est谩ndar de 1994) cuando no puede asignar la memoria que se le indica, sino que arroja la excepci贸n std::bad_alloc (mira en la ayuda de tu compilador).
脡ste es el comportamiento de new en todos los compiladores de C++ est谩ndar posteriores al '94, salvo para el Visual C 6.0, aunque hay un parche para corregirlo en el sitio de Microsoft (no me acuerdo d贸nde, pero all铆 est谩).
Primero prueba cambiando la comprobaci贸n de falla, algo como:
try {
char *p = new char[1000000];
}
catch(std::bad_alloc& E) // atrapa la exepci贸n
{
cout<<E.what()<<endl;
//... intenta salvar los papeles...
}
Alejandro
脡ste es el comportamiento de new en todos los compiladores de C++ est谩ndar posteriores al '94, salvo para el Visual C 6.0, aunque hay un parche para corregirlo en el sitio de Microsoft (no me acuerdo d贸nde, pero all铆 est谩).
Primero prueba cambiando la comprobaci贸n de falla, algo como:
try {
char *p = new char[1000000];
}
catch(std::bad_alloc& E) // atrapa la exepci贸n
{
cout<<E.what()<<endl;
//... intenta salvar los papeles...
}
Alejandro
