我需要一个数组来存储可变大小的 char 数组。我可以使用向量或其他任何东西,但不幸的是,这是针对 MPI 项目的,我被迫使用数组,所以我可以使用MPI::COMM_WORLD.Send(...)
函数发送它。
我的想法来自这个链接。
这是我遇到的问题的简化示例:
char* arrayStorage[3]; //I want to store 3 char arrays of variable size!
int index = 0;
char array_1[RANDOM_SIZE] = {.....};
char array_2[RANDOM_SIZE] = {.....};
char array_3[RANDOM_SIZE] = {.....};
arraySorage[index] = array_1;
index++;
arraySorage[index] = array_2;
index++;
arraySorage[index] = array_3;
index++;
我也看到人们谈论malloc
类似的东西,但我对指针知之甚少。我有malloc
,我必须打电话free
,我不知道在哪里,所以我现在避免这样做。
这段代码显然不起作用,array_1
, array_2
,array_3
都可以,但是当我尝试访问它们时,我得到了垃圾。问题似乎在索引变量内部。也许我不应该做 index++,也许我应该做 index += RANDOM_SIZE,但这也失败了。
如何将可变大小的 char 数组存储在数组中?