我需要分散我的字符串数组。问题是,我不确定,如何正确地做到这一点,我只习惯用C语言。
我的程序有数组scatterArr
,其中包含几个字符串(每个进程一个,所以这个数字正在改变)。字符串长度也在变化 - 我的程序从文件加载文本,因此,它取决于字数。
scatterArr
的示例(仅针对此示例我手动分配了字符串):
int world_size = 4; // number of processes
string * scatterArr = new string[world_size];
scatterArr[0] = "Hello;How;";
scatterArr[1] = "I;are;";
scatterArr[2] = "am;you;";
scatterArr[3] = "John;"; // only one word loaded
现在Scatter()
:
int arrCharCount = 21;
char * recvArr = new char[ ??? ]; // I'm not sure what size to expect
COMM_WORLD.Scatter( scatterArr, arrCharCount, CHAR, recvArr, ???, CHAR, 0 );
我不确定将char *
用作recvArr
类型(可能string
会更好吗?)以及我应该为recvArr
分配的大小阵列。
那么,请你帮我解决一下,如果可能的话,更彻底地解释一下?我发现了this问题,但我不明白,当我不知道将要发生的确切CHARS数量时,如何确定recvArr
的大小。