Hi, I simply want to interface a C function with OCaml. OCaml source: type s_img = int * int * string array external load_img : string -> s_img = "caml_load_img" C source: value caml_load(s_img *img) { CAMLparam0 (); CAMLlocal1 (v); unsigned char **nimg; /* ** Dynamic allocation (and initialization) of nimg with malloc (NULL-terminated). ** The dimensions are `` nimg[img->height + 1][img->width] '' */ v = alloc_tuple(3); Store_field(v, 0, Val_int(img->height)); Store_field(v, 1, Val_int(img->width)); Store_field(v, 2, caml_copy_string_array(nimg)); /* Some calls to the free function */ CAMLreturn (v); } value caml_load_img(value filename) { CAMLparam1 (filename); char *s = String_val(filename); s_img *img; /* Allocation of the s_img structure with C functions */ CAMLreturn (caml_load(img)); } The source code is working on Debian but does not on NetBSD (release 3.0.1) where the GC raise Out_memory ! I am using on both architectures the version 3.08.3 of OCaml. Thanks. -- Damien `Dam' Lefortier Hwær cwom mearg? Hwær cwom mago? -- The Wanderer v. 92a EPITA Promo 2010