its not that I am stuck but more of a "What do you think best" type of question. I have an array of Struct that I want to send to the second process but each struct has a dynamical allocated array ( it has int,int and *int). So if I create MPI_Create_struct then I need to create each struct separatly and send it separatly, because each struct has a different size of array inside so is different in size from other structs. Same goes if I pack the content of structs : each struct will be packed and sent separatly because each array size is different and so the struct size i send is different. Is there a way to send the structs in one take or whould I just send the structs one by one , each with its size??