考虑以下结构
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 * data 之类的通用指针?即将上述结构转换为用户定义的MPI数据类型等效。
感谢,
答案 0 :(得分:2)
你不能在进程之间传递指针,它们不共享内存。
你必须传递真实的信息,或者什么都不传递。指针仅与该过程相关。