Das Problem liegt in der Linie:
Site S[]= new Site[100];
Für jede Iteration erstellen Sie ein neues Array. Am Ende ist es also nur mit Nullzeiger gefüllt. Wenn Sie versuchen, auf die S [0] zuzugreifen, erhalten Sie bei der zweiten Iteration einen Nullzeiger.
Deshalb druckt es zuerst, aber beim zweiten Mal erhalten Sie einen Nullzeiger. Zum ersten Mal hat das S [0] einen Wert, das zweite Mal nicht.