Есть dll, написанная на C (без плюсов), в которой масса функций, реализующих разнообразные численные методы. Я пытаюсь работать с этой библиотекой из C# при помощи PInvoke. Многим из этих процедур нужно передавать массивы. С одномерными (вроде double*) я разобрался; передача "обычных" параметров (double, int и т.д.) тоже не вызвала затруднений. А вот с многомерными массивами у меня до сих пор не получилось

Уважаемые коллеги, подскажите, пожалуйста, как грамотно передать, например, double**, т.е. двумерный массив, в dll?
Здравствуйте, Пабло Кабанейро, Вы писали:
ПК>Есть dll, написанная на C (без плюсов), в которой масса функций, реализующих разнообразные численные методы. Я пытаюсь работать с этой библиотекой из C# при помощи PInvoke. Многим из этих процедур нужно передавать массивы. С одномерными (вроде double*) я разобрался; передача "обычных" параметров (double, int и т.д.) тоже не вызвала затруднений. А вот с многомерными массивами у меня до сих пор не получилось
Уважаемые коллеги, подскажите, пожалуйста, как грамотно передать, например, double**, т.е. двумерный массив, в dll?
лучше всего просто через double*, так же, как и одномерный.
многомерный массив — это абстракция, считай это просто куском памяти и в С++ это будет просто указатель на первый элемент.
а вот double** — это указатель на массив указателей в твоем случае, что совсем не то, что тебе нужно.