Передача массива структур с вложенными динамическими массивами другому процессу
В каждом процессе у меня имеется массив структур следующего вида:
struct neighbor {
int num, *arr, maxnum;
};
struct neighbor *neighbors = malloc(Nat * sizeof(struct neighbor));
(num- количество элементов в массиве arr, maxnum- количество элементов, под которые выделена память в массиве arr).
Мне нужно передать из всех процессов массивы с этими структурами главному процессу. Проблема в том, что у каждого экземпляра структуры может быть разный размер массива arr, так что я не совсем понимаю как мне создать производный тип данных MPI для отправки массива (например, через MPI_Isend), ведь они занимают разное количество памяти и в них содержится разное количество элементов.