class object
{
public:
void check()
{
std::cout<<"I am doing ok..."<<std::endl;
}
};
int main()
{
object *p = new object;
p->check();
delete p;
p->check();
delete p;
p->check();
}
EDITAR: gurúes, Estoy confundido por muchas de las declaraciones "que puede bloquearse o no" .. ¿por qué tampoco existe una norma que dicen, así como nos ocupamos de un bloque de memoria que se elimina usando 'eliminar operador' ...? ¿Alguna entrada?¿Por qué la pieza de código siguiente no se bloquea, aunque he eliminado el objeto?
Gurus, estoy confundido por muchas de las declaraciones "puede bloquearse o no" ... ¿por qué no hay un estándar para decir, esto es como lidiar con un bloque de memoria que se borra usando 'eliminar operador' ... ? ¿Alguna entrada? – Warrior
"Puede o no" bloquearse porque el comportamiento no está definido y depende del compilador, del sistema operativo y de lo que está sucediendo. Básicamente, la eliminación simplemente marca el puntero como disponible nuevamente. No se hace nada explícito en la memoria que se apunta, por lo que puede salirse con la suya si nada más ha cambiado. – ChrisF