Código
//Dimension de la matriz cuadrada int N = 4; //Declaracion de la matriz int *A; //Alocacion de memoria dinamica para la matriz //Inicializacion de todos los campos de la matriz en 1 for (int fila=0; fila<N; fila++) { for (int columna=0; columna<N; columna++) { A[fila*N+columna]=1; } }
La matriz resultante en éste caso sería una matriz asi:
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
Ahora lo que necesito es enviar la dirección de cada fila a través de la función MPI_Send(), la cuál en su primer parámetro recibe un puntero a buffer. Aca les dejo una parte del manual de Mpi_Send:
Citar
#include <mpi.h>
int MPI_Send(const void *buf, int count, MPI_Datatype datatype, int dest,
int tag, MPI_Comm comm)
Input Parameters
buf
Initial address of send buffer (choice).
count
Number of elements send (nonnegative integer).
datatype
Datatype of each send buffer element (handle).
dest
Rank of destination (integer).
tag
Message tag (integer).
comm
Communicator (handle).
int MPI_Send(const void *buf, int count, MPI_Datatype datatype, int dest,
int tag, MPI_Comm comm)
Input Parameters
buf
Initial address of send buffer (choice).
count
Number of elements send (nonnegative integer).
datatype
Datatype of each send buffer element (handle).
dest
Rank of destination (integer).
tag
Message tag (integer).
comm
Communicator (handle).
Lo que no se es cómo enviar el primer parámetro, me estoy volviendo loco con los tipos de datos y los punteros. Espero que me puedan dar una mano. Las matrices si o si deben utilizarse con memoria dinámica como mencioné en el código de arriba. Muchas gracias desde ya. Saludos