Передача массива структур с вложенными динамическими массивами другому процессу

В каждом процессе у меня имеется массив структур следующего вида:

struct neighbor {
    int num, *arr, maxnum;
};

struct neighbor *neighbors = malloc(Nat * sizeof(struct neighbor));

(num- количество элементов в массиве arr, maxnum- количество элементов, под которые выделена память в массиве arr).

Мне нужно передать из всех процессов массивы с этими структурами главному процессу. Проблема в том, что у каждого экземпляра структуры может быть разный размер массива arr, так что я не совсем понимаю как мне создать производный тип данных MPI для отправки массива (например, через MPI_Isend), ведь они занимают разное количество памяти и в них содержится разное количество элементов.


Ответы (0 шт):