Jeśli mówimy o C++:
Nie używamy NULL, tylko nullptr. Zapoznaj się ze wskaźnikami inteligentnymi [sekcja "Smart Pointers"] i od dziś zacznij ich używać. Do tworzenia tablic służą w C++ kontenery. Zachęcam też do poczytania CppCoreGuidelines - nie jest to dokument dokończony, wciąż jest w trakcie tworzenia. Ale już w tej chwili zawiera wiele cennych wskazówek.
To, co opisujesz, to stworzenie tzw. 'dangling pointera'. Dość częsty błąd, szczególnie w dużych projektach o starej bazie kodu.
Jeśli mówimy o C:
...staraj się nie usuwać obiektów, jeśli wiesz, że wciąż wskazują na nie inne wskaźniki. Hej, a nie możesz zacząć pisać w C++? ;)