Может ли FFI работать с массивами? Если да, то как?

Я почти уверен, что можно отправлять массивы через FFI, но я не могу найти примеры. Например, у меня есть массив Haskell, который я отправляю в функцию int foo(int*), или у меня есть массив C int bar[64];, который я отправляю в Haskell. .

В идеале я хотел бы наиболее эффективный способ — я не хочу выделения кучи или ненужного копирования. Кроме того, было бы неплохо, если бы я мог использовать распакованные массивы Haskell как в Haskell, так и в C. Так как же это сделать?

21
задан Pubby 24 March 2012 в 19:26
поделиться