Reference counter is nothing but it is maintaining the number of references to a particular block. If the block is to be deleted than its reference counter must be zero. It solves both accumulation and dangling pointer problems.