замените
for(i=0;i<4;i++)
{
struct node s[i];
}
на
struct node s[4];
способ, которым вы написали свою программу, не будет работать.Вы определили массив узлов внутри блока, поэтому он не будет виден за пределами этого блока.
Если вы хотите динамически распределять память, вам нужно сделать что-то вроде:
struct node *s = new node[YourDesiredSize];
или если вам нравится стиль c (не рекомендуется):
struct node *s;
s = (node*)malloc(YourDesiredSize * sizeof (node));
и не забудьте освободить память.