An mehreren Pins nach DS18B20 suchen

Folgender Code sucht an verschiedenen Pins ob mind. ein DS18B20 Sensor vorhanden ist.
Wurde einer gefunden, bleibt die Klasse inistialisiert.

Frage:
Kann sich das mal jemand von euch begnadeten C++ Programmierern anschauen, ob die Pointer richtig initialisiert und gelöscht werden? Mir gehts um Programmstabilität...

OneWire *oneWire;
DallasTemperature *sensors;

uint8_t SENSOR_PINs[] = {A0, A1, A2, A3};  // PINs an denen DS18B20 bzw DHT22 gesucht werden soll
    // DS18B20 suchen
    display.setCursor(20, 8 + i * 8);
    if (!sensors) // Wenn DS nicht initialisiert wurde dann PIN testen
    {
      oneWire = new OneWire(SENSOR_PINs[i]);
      sensors = new DallasTemperature(oneWire);
      sensors->begin();
      uint8_t tmpAnz = sensors->getDeviceCount();


      if (tmpAnz > 0) continue;
      delete oneWire;
      delete sensors;
      sensors = 0;
      digitalWrite(SENSOR_PINs[i], HIGH);
      pinMode(SENSOR_PINs[i], INPUT);
    }