我有一个用于指纹扫描和指纹匹配的 JAVA 应用程序。为了匹配指纹,我正在使用libfprint库。我已经完成了与该库相关的所有设置。
库初始化等基本功能在应用程序中运行良好。现在我正在尝试使用该功能为图像分配内存fpi_img_new()
。这是该函数的语法
struct fp_img *fpi_img_new(size_t length);
但是当我尝试通过将值传递给此函数来分配一些内存时,它显示以下错误
GLib-ERROR **: /build/buildd/glib2.0-2.30.0/./glib/gmem.c:170: failed to allocate 3078340616 bytes
/usr/lib/jvm/java-7-openjdk/bin/java: line 31: 3078 Trace/breakpoint trap $jre $args
我手动传递值只是为了检查这个函数的功能。但它失败了。有人可以帮我解决上述问题吗?先感谢您。
编辑 :
这是我使用 fpi_img_new() 函数的代码:
API_EXPORTED struct fp_img *fpi_img_new(size_t length)
{
struct fp_img *img = g_malloc(sizeof(*img) + length);
memset(img, 0, sizeof(*img));
fp_dbg("length=%zd", length);
img->length = length;
return img;
}
我通过简单地传递整数值来调用这个函数
fpi_img_new(2)