[Résolu] "New Objet" dans setup(), "delete Objet" dans loop()

Tout est dans le titre. Exemple :

class Test {
  private :
    char buffer [80] ;
  public :
    Test () {;}
} ;

Test * monTest ;

void setup () {
    Serial.begin(115200);
    while (!Serial) ;
    monTest = new Test () ;
}

void loop () {
  if (monTest != NULL) delete monTest ;
}

On n'a pas le droit de créer l'objet dans le setup et de le détruire dans le loop ?

Bonjour,

Si on a le droit. Seulement comme tu fais tu vas détruire l'objet plusieurs fois (c'est à dire un objet qui n'existe plus) car monTest garde sa valeur.
Souvent on fait:

  if (monTest != NULL)
  {
    delete monTest ;
    monTest=NULL;
  }

Ah OK, le "delete" ne remet pas le pointeur à NULL. Habitude de java... Merci.

Il est inutile de tester si le pointeur est NULL avant d'invoquer delete.
delete sur un pointeur NULL ne fait rien.