Deklarujesz tablicę dynamiczną, a potem niektórym jej elementom przypisujesz ‘*’. Te dla których tego nie zrobiłeś mają wartość nie ustaloną (jest tam to co akurat było w zajętej pamięci, teoretycznie może być wszystko). To są właśnie te indeksy o których mówię.
Następnie iterujesz po całej tablicy i sprawdzasz czy bieżący element ma wartość ‘*’. Może się zdarzyć, że dla elementów które miały wartość nieustaloną jest tam właśnie ‘*’, przez co ją wypisujesz.
Program alokuje pamięć, która częściowo pokrywa się z tą, którą zwolniłeś przez co występuje taki efekt.