Following is a program for initializing members of a structure in c
struct stack
{
    int *a;
    int top;
    int size;
}s;
void init()
{
    const int size =10; /*s.size=10;*/  /*const int s.size=10*/
    s.a=(int*)malloc(size*sizeof(int));
    s.top=0;    
}
int main()
{
    init();
    printf("Initialization done !\n");
    return 0;   
}
Q1 : In init method instead of const int size=10 when I wrote s.size=10 , I got an error "size was not declared in scope " , but I have already declared size in stack struct .I was able to initialize top in the same manner Then why the error ? 
Q2 : In  init method I am getting correct output with const int size=10 . I am confused , in this statement how are we able to access size member of the struct stack without using a struct variable , shouldn't it be const int s.size=10? 
 
     
     
     
    