Working in C++ is considered relatively difficult because the programmer is faced with many additional headaches; biggest of them being the memory management and the consequent pointer hazards. The allocation and de-allocation of memory at the appropriate time is not an easy job. But this very feature makes C++ one of the fastest and efficient Programming Languages. Pointers are used to access the memory blocks in C++. I assume that you are already familiar with the pointers. So I shall explain some of the dangers you might be in while working with pointers. Then gradually we shall advance towards more advanced usage and hazards.