我在 ubuntu 上使用库libfprint,我试图通过我的 java 代码调用一个函数。
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;
}
我将整数值 5 从我的 java 代码传递给这个函数。当我尝试执行上述功能时,出现以下错误:
GLib-ERROR **: /build/buildd/glib2.0-2.30.0/./glib/gmem.c:170: failed to allocate 3077591024 bytes
我在 2 台不同的 ubuntu 机器上尝试了相同的代码,但错误仍然相同。我不知道为什么它试图为 24+5 长度分配这么多字节。
谁能建议我任何解决方案?