Beispiel new, delete, nullptr

new.cpp
#include <iostream>
 
class Bayer
{
public:
  Bayer()       { std::cout << "Moin\n";      }
 ~Bayer()       { std::cout << "Feierohmd\n"; }
  void flucht() { std::cout << "Saupreis\n";  }
};                    
 
int main()
{
  Bayer* bayer = nullptr; 
  std::cout << "Erst einer:\n";
 
  bayer = new Bayer;
  bayer->flucht();
  delete bayer;
  bayer = nullptr;
 
  std::cout << "und nun drei:\n";
 
  bayer = new Bayer[3];
  bayer[1].flucht();
  delete [] bayer;
  bayer = nullptr;
}

Anmerkung: Benutze keine "nackten Zeiger" auf dynamischen Speicher. Automatisiere die Speicherfreigabe (RAII-Prinzip) und kapsele sie in "intelligente" Zeiger shared_ptr<T> oder unique_ptr<T>.