我在程序里调用了这个函数之后,发现有一个输入值为 size_t*。请问,该如何取一个变量类型为std::vectorstd::uint8_t的动态数组的大小的地址。我直接在函数外定义了
size_t out_len = request.mac.size();
然后在调用函数时使用 &out_len。但我感觉这样得到的地址仅仅是我声明的 out_len这个变量的地址,而不是我需要的动态数组的地址。
(调用的函数代码如下)
#include <aes_siv.h>
int AES_SIV_Encrypt(AES_SIV_CTX ctx,
unsigned char out, size_t out_len,
unsigned char const key, size_t key_len,
unsigned char const nonce, size_t nonce_len,
unsigned char const plaintext, size_t plaintext_len,
unsigned char const* ad, size_t ad_len);
(来源: https://github.com/dfoxfranke/libaes_siv/blob/master/AES_SIV_Encrypt.adoc)
不用这么麻烦,这是一个返回参数,需要传入一个size_t变量的地址而已
size_t out_len;
AES_SIV_Encrypt(&ctx,&out_len,...)就可以了