int zakres;
Kontakty* tab = new Kontakty[zakres];
Masz tu zmienną `zakres` bez przypisanej wartości (to zmienna globalna, więc domyślnie 0), po czym od razu próbujesz alokować tablicę o tym rozmiarze. To, że w dalszym miejscu kodu robisz `cin>>zakres`, nie oznacza, że wszystkie miejsca "magicznie" zauważą że `zakres` się zmienił i zmieni się rozmiar tablicy.
Musisz najpierw pobrać `zakres` od użytkownika, a dopiero wtedy zaalokować tablicę z użyciem `new`.
(btw, polecam nie używać zmiennych globalnych :/ )