overflow

juan
30 de Abril del 2004
necesito el codigo para un stack full usando el metodo overflow en c++, si pudieran darme un ejemplo de cuando usar el overflow

noel solw
30 de Abril del 2004
Todo depende de como implementes el stack.
[1] : para un stack con pointers, stack full ocurre cuando con hay lugar en la memoria, por ejemplo el operador new devuelve NULL.
[2] : para un stack implementado en un array, stack full ocurre con el array lleno.

Alejandro_
30 de Abril del 2004
Hola Noel, hace ya diez años que el operador new no devuelve más NULL cuando falla una asignación. En su lugar, lanza la excepción std::bad_alloc

Construcciones antiguas como esta:

p = new Algo;
if (!p) // No usar más!!
{
cout<<"Este mensaje nunca se mostrará";
// jamás pasará por aquí...
}

se reemplazan por:

try {
p = new Algo;
}
catch(std::bad_alloc &QueMal) {
cout << "fallo en la asignación de memoria...";
// tratar de dar alguna solución o intentar retirarse con decoro...
}


Claro que existen situaciones donde se impone seguir escribiendo código que sabemos que sólo es válido para algún compilador obsoleto, perimido y para ninguno más; por ejemplo, curiosamente, en la escuela.

Alejandro

Alejandro_
30 de Abril del 2004
> En mi compilador "si" devuelve NULL.

Reflexiona. ¿Se trataba de "programación en C++"? ¿O era "Programación con el compilador de Noel" ?

Aunque, como es habitual, lo más probable es que me esté equivocando, y que no se trate de nada de eso.




noel solw
30 de Abril del 2004
Estimado Alejandro, por supuesto que tenes razon,
pero no se trata de "mi compliador", yo uso los compliladores del Sr. C. Borland y hasta ahora resultaron todos ++.

noel solw
30 de Abril del 2004
En mi compilador "si" devuelve NULL.
Vuelvo a repetirte el viejo dicho : el peor enemigo de lo bueno es lo mejor.
Cada cual planifica de acuerdo al sistema en eso, y no de acuerdo a hipoteticas posibilidades futuras, que no solo no complican la vida innecesariamente, sino, y
esto es lo peor solo sirven para confundir a los que necesitan algun tipo de ayuda ! ! !