Mi chiedevo se v'è la possibilità di catturare gli errori come questo in C++:È possibile rilevare errori di puntatore non validi in C++?
object* p = new object;
delete p;
delete p; // This would cause an error, can I catch this?
- posso controllare se il puntatore è valido?
- Posso rilevare qualche eccezione?
So che è possibile impostare il puntatore p
su NULL
dopo la prima cancellazione dell'oggetto. Ma immagina solo che non lo faresti.
La domanda non è come recuperare da tali errori, la domanda è come non renderli in primo luogo. (Lo stesso vale per impostare i puntatori su 'NULL'. Perché un puntatore in ambito che non si riferisce a qualcosa?) C++ viene fornito con molti costrutti che impediscono di gestire manualmente i puntatori (e altre risorse). Nell'ultimo decennio del fare C++, raramente ho dovuto "cancellare" manualmente qualsiasi cosa. – sbi
@Job Giusto sei - dovresti aver estratto il riferimento. –