elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Matrices con punteros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Matrices con punteros  (Leído 1,909 veces)
Skali

Desconectado Desconectado

Mensajes: 100



Ver Perfil
Matrices con punteros
« en: 15 Mayo 2018, 18:48 pm »

Buenas! Qué tal? Les comento mi problema. Necesito enviar el offset de cada fila de una matriz cuadrada a través de la función MPI_Send(). La matriz está implementada a través de punteros, por lo cuál sus valores se almacenan en la heap y no en el stack como ocurre con las matrices comunes de la forma: matriz[fila][columna]. Les muestro como las estoy implementando. Imaginemos que en éste caso tenemos una matriz de 4x4 y la inicializamos con 1 en todos sus campos.

Código
  1. //Dimension de la matriz cuadrada
  2. int N = 4;
  3.  
  4. //Declaracion de la matriz
  5. int *A;
  6.  
  7. //Alocacion de memoria dinamica para la matriz
  8. A = (int *) malloc(sizeof(int) * N * N);
  9.  
  10. //Inicializacion de todos los campos de la matriz en 1
  11. for (int fila=0; fila<N; fila++) {
  12.    for (int columna=0; columna<N; columna++) {
  13.        A[fila*N+columna]=1;
  14.    }
  15. }

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).

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


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Matrices con punteros
« Respuesta #1 en: 15 Mayo 2018, 20:14 pm »

La dirección será &A[fina*N]

Si hubieras hecho una verdadera matriz cuadrada la fila sería A[fila], más intuitivo.


En línea

Skali

Desconectado Desconectado

Mensajes: 100



Ver Perfil
Re: Matrices con punteros
« Respuesta #2 en: 15 Mayo 2018, 20:34 pm »

Hola MAFUS! Muchisimas gracias por la respuesta y por la velocidad en responder! :D. Resulta que estaba usando bien la dirección, pero el problema me surgía al estar usando mal el segundo parámetro:

Citar
count
    Number of elements send (nonnegative integer).

Más detalladamente, estaba paralelizando a través de MPI una multiplicación de matrices. A cada proceso worker le divido una parte del for que hace referencia a la fila, y para ello estaba usando las variables base y tope. Al segundo parámetro estaba enviando:

Código
  1. (base - tope) * N

cuando lo correcto sería:

Código
  1. (tope - base) * N

Un error muy tonto... En fin, gracias nuevamente por la respuesta. Me fue de mucha ayuda.

Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Uso de matrices o vectores de punteros
Programación C/C++
novalida 1 12,371 Último mensaje 16 Marzo 2011, 01:19 am
por Don Pollo
ayuda con problema de matrices y punteros
Programación C/C++
dato000 4 3,014 Último mensaje 10 Diciembre 2013, 21:02 pm
por dato000
punteros dobles y matrices en DELPHI
Programación C/C++
Flack 4 3,111 Último mensaje 4 Febrero 2014, 16:25 pm
por x64core
Matrices con punteros
Programación C/C++
sherry_XD 3 2,590 Último mensaje 21 Abril 2014, 09:14 am
por eferion
¿Matrices de punteros a funciones en C?
Programación C/C++
blackshack_zero 3 2,495 Último mensaje 29 Agosto 2015, 23:34 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines