Base 64解码在C中返回NULL

Base 64 decode returning NULL in C

我有一个要解码的 base 64 编码字符串。 它看起来像这样:

VGhpcyBpcyBhIGZpbGUgdGhhdCBJIHdhbnQgdG8gZGVjb2Rl

当我这样做时..

gsize *out_len;
unsigned const char *decoded;
decoded = g_base_64_decode(myString, out_len);

并打印出我的解码字符串,我也得到 NULL,我得到断言: 'out_len != NULL' Glib

失败

为什么会这样?如何使用此函数正确解码我的字符串? https://developer.gnome.org/glib/stable/glib-Base64-Encoding.html#g-base64-decode-step

out_len参数是一个输出参数。这意味着您通常会像这样在堆栈上创建类型为 gsizeout_len 变量:

gsize out_len;

然后你调用函数传递一个指针到上述变量(即你传递的地址:&out_len), 例如:

decoded = g_base_64_decode(myString, &out_len);