c++ 将存储在 std::vector 中的数据传递给 c_func(void* data)

标签 c++ c stdvector void

我有一个 std::vector我需要从 libgcrypt 获取其内容的哈希值。

如何获取 std::vector<int-type> vec 的内容进入gcry_md_hash_buffer(GCRY_MD_MD5, (void*)&digest, (void*)buffer, vec.size());其中 bufferdatavec

最佳答案

如果你使用的是C++11,通过

vec.data()

用于缓冲区

引用:Vector::data()

如果没有,传递&(vec.front())vec 的元素保证在连续存储中。

关于c++ 将存储在 std::vector 中的数据传递给 c_func(void* data),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20064142/

相关文章:

c++ - 为什么结构化绑定(bind)在 GCC 上失败?

c++ - 相邻数组的内存分配

c - 临时数据如何存储在堆栈帧中

c - 分散二维数组到连续二维数组的转换(C语言)

Vector 容器中的 C++ 智能指针

c++ - C++:从vector <byte>的任何位置获取int

c++ - 是否可以将带逗号的语句传递到 boost 测试宏中?

c++ - 为什么派生类虚函数可以调用基类虚函数?编译器如何实现?

c++ - C/C++调用依赖分析引用

c++ - 使用指向 vector 中项目的指针,并从 vector 中删除项目