Why can't get the key-value I need for using fdb_transaction_get_range

Hi. I have already set a kv (‘\x00\x05\x00\x00\x00\x00\x00\x00movie’ ,’\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00’) into the fdb. And I can search this with fdbcli getrange \x00\x05 \x00\xff.

But when I use C API (version 630), something strange happened.
When the code is :

 uint8_t startUint[2] = {0x0, 0x5};
    uint8_t endUnit[2] = {254, 254};
    FDBFuture *future = fdb_transaction_get_range(tr, startUint, 2, 0, 1,
                                                      endUnit, 2, 1, 0,
                                                  0, 0, FDB_STREAMING_MODE_LARGE, 0, 0, 0);

then I get the kv.

When the code is :

uint8_t startUint[2] = {0x0, 0x5};
    uint8_t endUnit[2] = {0x0, 254};
    FDBFuture *future = fdb_transaction_get_range(tr, startUint, 2, 0, 1,
                                                      endUnit, 2, 1, 0,
                                                  0, 0, FDB_STREAMING_MODE_LARGE, 0, 0, 0);

I got Nothing !
Can Anyone help ?

when I fix the code as below:

uint8_t startUint[2] = {0x0, 0x5};
uint8_t endUnit[2] = {0x0, 254};
FDBFuture *future = fdb_transaction_get_range(tr, startUint, 2, 1, 0,
                                                      endUnit, 2, 0, 1,
                                                  0, 0, FDB_STREAMING_MODE_LARGE, 0, 0, 0);

I can get the kv again
Then I change the startUint[3]={0x0, 0x5,0x2}
I run

FDBFuture *future = fdb_transaction_get_range(tr, startUint, 2, 1, 0,
                                                      endUnit, 2, 0, 1,
                                                  0, 0, FDB_STREAMING_MODE_LARGE, 0, 0, 0);

I get the kv too !

I 'm totally confused!

can anyone answer that???