将指针传递给API函数
passing pointer to an API function
我具有通过向量的地址的API函数:
function_A()
{
function_B();
}
function_B()
{
vector<int> tempVector;
function(&tempVector[0]); // <---- API function: fills the vector with values
...
}
tempVector
的创建在function_B
中,效果很好。
我希望tempVector
的创建将在function_A
中并传递给它,因此程序中的其他功能也将使用tempVector
中的数据。
我试图以几种方式将指针传递给tempVector
到function(...)
,但我总是会遇到错误。
function_A()
{
vector<int> tempVector; // <--- creation here
function_B(&tempVector); // pass its address
//use tempVector
}
function_B(vector<int> * tempVector) // receive its address
{
function(); // <---- API function: how should I pass tempVector?
...
}
为什么将其作为C指针传递,而不是C 参考?
function_A()
{
vector<int> tempVector;
function_B(tempVector);
//use tempVector
}
function_B(vector<int>& tempVector)
{
function(&tempVector[0]);
...
}
您必须像往常一样删除指针:
function_B(vector<int> * tempVector) {
function(&(*tempVector)[0]);
}
像指针一样传递:
function_B(vector<int> * tempVector) // receive its address
{
function(tempVector);
...
}
function(vector<int> * tempVector)
{
...
}
或作为变量:
function_B(vector<int> * tempVector) // receive its address
{
function(*tempVector);
...
}
function(vector<int> tempVector)
{
...
}
相关文章:
- 调用 Win32 API 函数时未定义的引用
- 谁拥有作为指向 Windows API 函数的指针传递的值?
- 将uint8_t*buffer和size_tbufferlen从C++传递到C中的API函数的最佳方式是什么
- 如何在应用程序正在运行的系统上查看所需的Windows API函数
- 我的 API 函数应该shared_ptr还是weak_ptr
- 将 API 函数参数从 'char *' 更改为"const char *"有哪些潜在问题?
- 当涉及数组时,我们是否可以安全地从C++调用C API函数
- 从 Windows KMD 调用用户空间 API 函数
- 写入const API函数(C )中的成员变量
- 毒害某些API函数(不是维护者)
- win32 API 函数 GetModuleFileName 或 GetModuleHandle 中的"Module"是什么?
- 将指针传递给API函数
- 如何通过重用单个API函数来调用不同的操作
- 将 ASCII 字符串转换为 UTF-16,然后再将它们传递给 Windows API 函数
- POSIX 或 Linux API 函数,用于从路径获取文件扩展名
- 如何正确调用 UrlCanonicalize API 函数
- 找不到Win32 API函数
- 将 AfxGetInstanceHandle() 的调用替换为 Windows API 函数
- 包装任何API函数
- Windows API函数不可用,但它应该可用