我是FFI和GNU Guile的新手,我正在编写一个大量使用char*变量的库的绑定。下面是function中的代码,它包装了C函数:
static inline char*
scm_to_ascii_string(SCM string)
{
return SCM_UNBNDP(SCM) ? NULL
: scm_to_stringn(string, NULL, "ascii", SCM_FAILED_CONVERSION_ERROR);
}
SCM_DEFINE(func, "func", ...)
{
...
char *server_pass = scm_to_ascii_string(scm_server_pass);
char *username = scm_to_ascii_string(scm_username);
char *realname = scm_to_ascii_string(scm_realname);
}问题是,任何对转换函数的调用都会抛出错误,从而导致内存泄漏。我能做些什么呢?
发布于 2013-05-15 01:04:58
您可以将输出部分设置为参数,例如:
void scm_to_ascii_string(SCM string,char* &out);
编辑:
我猜你指的是C端有哪些异常处理方法,我想在C编程的两个章节之一的手册中可能会有一些关于这方面的内容。
https://stackoverflow.com/questions/16037102
复制相似问题