如何找到给定GArray的长度?

我有一个Grray的GValue(全部为非零),它已在运行时使用g_array_append_val分配。 我想知道如何找出最后一个元素的索引是什么,或者更确切地说是数组所包​​含的元素数量。 代码就像

for (length=0;g_value_get_int(&g_array_index(array, GValue, length)); length++); return length 

会因为出界而失败。

它似乎没有详细记录,但数组中元素的数量存储在字段array->len