使用带Ctypes的数组

时间:2015-06-19 14:18:52

标签: ocaml

我在C中有这个快速排序功能,我希望使用Ctypes绑定到OCaml。

声明如下:

void quicksort(int array[], int first, int last)

我不知道在外来的第二个参数中为数组添加什么类型:

let cquicksort = foreign
    "quicksort" (??? @-> int @-> int @-> returning void)
;;

1 个答案:

答案 0 :(得分:1)

您可以使用this教程中的空指针。

let cquicksort = foreign
    "quicksort" (ptr void @-> int @-> int @-> returning void)

let start = to_voidp (CArray.start (CArray.of_list int[1;2;3;4;3]));;

let () = 
    let carr = CArray.of_list int [1;2;4;5;3] in
        let start = to_voidp (CArray.start carr) in
            cquicksort start 0 4;

快速排序后,您可以使用CArray.to_list获取排序列表。