El problema está en la línea:
Site S[]= new Site[100];
Para cada iteración, crea una nueva matriz, por lo que al final solo está lleno de punteros nulos. Cuando intentes acceder al S [0] te dará un puntero nulo en la segunda iteración.
Es por eso que se imprime por primera vez, pero la segunda vez que obtienes un puntero nulo. La primera vez que el S [0] tiene un valor, la segunda vez no lo hace.