I have following structure of  MPI code - 

int main(){
 
MPI_INIT.....
//initialize MPI
data = malloc(sizeof(int)*200);
    //initialize data
   /*--------Master---------*/
  if(taskid == 0){

    //send data to each slave
    MPI_SEND....
   }

   /*----Slaves-------*/  
  if(taskid > 0){

   //accept data from master  
  MPI_RECV....
  //do some calculations
 }

 MPI_Finalize()
}

I have few doubts about the code above. 
In above code, the data is allocated memory in the main program. If I run this program on cluster where
node 1 is slave and node 0 is master, does node 1 actually shares the memory location of node 0 to perform the calculations?

If I do not want to share the memory, how can i make task on node 1 work independently ?

Thanks in advance.