Василий Банников, наверно пока что для меня это самый удобный вариант. Размер выводного массива можно брать из аргумента или статически при вызове или после исполнения при помощи указателя определенного размера, допустим 8 байтового int
Василий Банников, выходит что универсального решения для такой проблемы нет для функций не задуманых для работы с rpc? Вот что я придумал:
Не возвращать void* и другие. указатели, и не использовать void** для возврата указатель в аргумент.
Писать автогенератор оберток Аля как в grpc.
Писать костыль для получение размера из другого аргумента, до или после исполнения(int*)
А что насчет массивов? Есть ли реализации rpc в который функция может возвращать массив и его содержимое если функция вернула указатель или как я думаю это технически почти не возможно(говорим про Си), без функции обертки. Я знаю как можно передать массив как аргумент(void*)(нужно передать размер и сам массив в виде HEX) и как вернуть строку.
#, решил остаться при первом варианте, где у нас 2d массив ибо будет меньше ребер. Но ко мне подкрались смутные сомнения что это мусор а не структура))))
#, там многомерно не понятный костыль. Который сначало просто несвязанный 2d массив а потом при заканчивается места в одном из "регионов" он ищет пустую ячейку начиная с твой забитой ячейки и получается ребро. Ну или они будут связаны по дефолту, не знаю если честно как лучше реализовать.
Я уже переделываю машину и использую обычную плоскую память (не переменные и стек) тоесть есть указатель на инструкцию и от него смещение на 1/2/3 для получения аргументов