#include <iostream>
#include <memory>

int main()
{
  std::cout << "## 1" << std::endl;
  std::shared_ptr<int> pointer;
  std::cout << "## 2" << std::endl;
  pointer = 0;
  std::cout << "## 3" << std::endl;
  std::cout << *pointer << std::endl;
  std::cout << "## 4" << std::endl;
  *pointer = 17;
  std::cout << "## 5" << std::endl;
  return 0;
}
// Achtung, dieses Beispiel provoziert einen nullpointer!
