我在C中有这个快速排序功能,我希望使用Ctypes绑定到OCaml。
声明如下:
void quicksort(int array[], int first, int last)
我不知道在外来的第二个参数中为数组添加什么类型:
let cquicksort = foreign
"quicksort" (??? @-> int @-> int @-> returning void)
;;
答案 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
获取排序列表。