1

我有一个用于指纹扫描和指纹匹配的 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)
4

0 回答 0