发送字符串数组MPI C.

我正在尝试向MPI中的从属进程发送一个字符串数组,但我无法弄清楚如何做到这一点。 我有一大堆字符串,我从文件中读取,我需要将这个数组的一部分发送给从属。 我正在分配一个新数组,其中包含一些来自主要数据的元素,并试图发送它。 这是代码的发送部分:

int w = 0; int division = size / (procs -1); for(i=1; i<procs; i++){ //allocating char **array1 = (char**) malloc(sizeof(*array1) * division); array1[0] = (char*) malloc(sizeof(*array1[0]) * division * buf); for(j=1; j<division; j++) array1[i] = &(array1[0][i*buf]); // filling it up for(j=0; j<division; j++) array1[j] = array[w++]; // sending MPI_Send(&array1, division[i], MPI_CHAR, i, tag, MPI_COMM_WORLD); // clearing memory free(array1); } printf("%d: All Sent\n", rank); 

如果我将send方法改为这样的话

 MPI_SEND(&array[0][0] ...) 

它工作,但我需要每个进程发送多个字符串。

我也正在研究一个MPI项目,因为没有人回答这个问题,我会尽我所能。 我认为在你的实现中,你传递一个指针列表,每个指针指向一个char列表,​​因此MPI_send实质上发出了一个数组地址列表。 因此,data_type“char”将不匹配,或者它可能只找到每个数组中的第一个char。