ってあれ、よく見てなかったが、
int x = rand()%sizeof(s);
は
int x = rand()%i;
じゃないのか?