微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在C中使用mpi传递多个字符串的数组

如何解决在C中使用mpi传递多个字符串的数组

我试图将 2 个数组从我的主进程传递给从属进程。问题是当我通过数组时,我在里面得到了垃圾。有什么我不明白的地方?

master 之外的声明:

int how_much_word[2];
char file_name_and_number_words[2][50];

在 master 中,数组 file_name_and_number_words 由“mytext2.txt”和“mytext.txt”填充。 所以主站以这种方式在从站以 1 级发送这 2 个数组:

    for (int tmp = 1; tmp<world_size;tmp++){
        MPI_Send(file_name_and_number_words,2,MPI_CHAR,tmp,MPI_COMM_WORLD);
        MPI_Send(how_much_word,MPI_INT,1,MPI_COMM_WORLD);
    }

slave 是这样接收的:

MPI_Recv(file_name_and_number_words,MPI_COMM_WORLD,&status);
MPI_Recv(how_much_word,&status);

如果我尝试打印:file_name_and_number_words[0] 输出是:“my”,如果我打印 file_name_and_number_words 输出是:“�����b��>�6�9`”,我认为这是一个垃圾内存区。但错误在哪里?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。