我尝试使用MPI_Bcast向多个节点广播消息,并且我有时会出现分段错误错误:139或错误:255。以下是我的代码:
char proposal[20];
char rep;
int size, rank;
printf("1\n");
//Initialization
MPI_Init(&argc, &argv);
printf("init\n");
//Getting size and rank of processes
MPI_Comm_size(MPI_COMM_WORLD, &size);
printf("abc\n");
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
printf("2\n");
//Proposal message for root node
if(rank == 0)
{
printf("string copy\n");
strcpy("Choose a or b\n", proposal);
}
printf("3\n");
//Broadcasting message
MPI_Bcast(proposal, 20, MPI_CHAR, 0, MPI_COMM_WORLD);
printf("broadcast\n");
printf("%s", proposal);
如果能得到任何帮助,我将非常感激。
答案 0 :(得分:2)
strcpy
第一个参数是目的地,第二个参数是源。你把它颠倒了。