Проблема в линии:
Site S[]= new Site[100];
Для каждой итерации вы создаете новый массив, поэтому в конце он заполнен только нулевыми указателями. Когда вы попытаетесь получить доступ к S [0], это даст вам нулевой указатель на второй итерации.
Вот почему он впервые печатает, но во второй раз вы получите нулевый указатель. В первый раз у S [0] имеет значение, во второй раз, когда нет.