Ragazzi ho la seguente pila:

codice:
typedef char* tipostringa;//Definisco un tipo char*
struct nodo;
typedef nodo* puntnodo;//Definisco un tipo puntatore a nodo
struct nodo{
       tipostringa elem;
       puntnodo punt;
       };
       
class pila{
      puntnodo testa;
public:
       pila():testa(0){}
       ~pila();
       bool is_empty();
       void push(tipostringa);
       void pop(tipostringa&);
       tipostringa top();
       void clear();//E' quella di cui mi interessa l'implementazione, in quanto le altre le ho già svolte...
       };
io ho provato ad implementarla così...però non so se va bene, cioè funziona però non so se potrei dar luogo a dei problemi di memory leak ovvero lasciare delle cose allocate in memoria però che non sono più raggiungibili, tradotto in parole povere...vorrei sapere....in questo modo elimino tutto???

codice:
void pila::clear(){
     puntnodo p;
     while(testa){
                 p=testa;
                 testa=testa->punt;
                 delete p;
                 }
                  }
GRazie per il vostro cost(ante) aiuto