В общем проблема такова, что я не могу передать строку в функцию, где ее обрабатывает MPI и выводит. Функция просто не получает строку msg. Дело как я понимаю в указателях, но как правильно расставить их, я даже не знаю. Если можно помогите указать ошибки в программе:
Код:
#include <stdio.h>
#include <mpi.h>
#include <string.h>
#include <iostream>
#define MSGTAG 10
using namespace std;
void stn(int &a, char b[])
{
MPI_Status status;
MPI_Comm_rank(MPI_COMM_WORLD, &a);
if (a == 0)
{
MPI_Send(b, strlen(b)+1, MPI_CHAR, 1, MSGTAG, MPI_COMM_WORLD);
}
else
{
MPI_Recv(b, 80, MPI_CHAR, 0, MSGTAG, MPI_COMM_WORLD, &status);
printf("Received: %s\n", b);
}
}
int main(int me, char *msg[])
{
puts("String:");
fgets(*msg, 80, stdin);
MPI_Init(&me, &msg);
stn(me, *msg);
cin.get();
MPI_Finalize();
return 0;
}
Заранее спасибо.
P.S. Как я понимаю, все упирается в MPI_Init. Если все указатели убрать, то выдает вот что:
'MPI_Init' : cannot convert parameter 2 from 'char *[]' to 'char ***'