Hi I'm sorry if the answer to my question is very simple, but I'm really confused with this situation.
I got a program that now contains 1 master and 1 slave processes. Master process sends few similar chars to the slave process with this: for (unsigned i = 0; i < SomeVariable; i++) { strcpy(chdata[i], "asdf"); MPI_Isend(chdata[i], 4, MPI_CHAR, SLAVE, 1, MPI_COMM_WORLD, &req[i]); } And the slave process receives them with this: for (unsigned i = 0; i < SomeVariable; i++) { char * buf = new char[10]; MPI_Recv(buf, 4, MPI_CHAR, MASTER, 1, MPI_COMM_WORLD, &stat); printf("Received data [%s] of length %d\n", buf, strlen(buf)); } As I understand output should be "Received data [asdf] of length 4", but instead of this I got my 'asdf' with additional 3 random ANSI characters in string of length 7. I've already spent few hours to find the mistake out but unsuccessfully. I do successfully transfer int data in the similar way, but this case make me crazy. Could you help me to find out where did I fail in this? Sincerely yours, Alexey.