(define copy-string ;; NOTE: returning a c-string leads to segfaults (foreign-lambda* (c-pointer char) ((scheme-object string)) "char *src = C_c_string(string);" "size_t size = C_SIZEOF_STRING(string);" "char *dest = malloc(size + 1);" "strncpy(dest, src, size);" "dest[size] = '\\0';" "C_return(dest);"))