2

考虑以下结构

    typedef struct{
       void *data;
       int len;
    }item_t;

它允许我将item_t传递给一个名为map_functions(item_t dt , item_t (*f_ptr)(item_t) ) 的函数,该函数接受 item_t 和函数指针。

map_functions()然后将通过将item_t传递给它来调用作为参数传递的函数。请记住,有不同的函数会调用map_functions(),每个函数都有不同的 item_t 内容,传递他们想要调用的相应函数。

所有这一切对我来说都很好。

现在,我想用 MPI 做同样的事情。我首先想到的是:

如何定义用户定义的 MPI_Datatype(特别是 MPI_Type_struct),其中结构中涉及通用指针(如void* 数据)?即将上述结构转换为用户定义的 MPI 数据类型等价物。

谢谢,

4

1 回答 1

2

您不能在进程之间传递指针,它们不共享内存。

你必须传递真实的信息,或者什么都不传递。指针仅与进程相关。

于 2012-09-19T00:36:35.320 回答