如何使用以下参数调用函数:fun(Ty-param[NUM])
How to call a function with this parameter: fun(Ty param[NUM])?
在API头文件中,我发现了一个奇怪的函数声明:
void API_GetParameter(API_SOMESTRUCT param[API_NUM_CONST]);
其中API_NUM_CONST
是枚举值,API_SOMESTRUCT
是结构,所以我猜测param
是该结构的数组。
因此,函数需要一个现有的数据字段,它会填充或更改该字段我不能说API函数在内部做什么
现在,我的代码是这样的:
API_SOMESTRUCT *param = new API_SOMESTRUCT[API_NUM_CONST];
API_GetParameter(param);
// ... read out param
delete[] param;
param = NULL;
但我怀疑这段代码是我最近收到的堆损坏错误的原因,我不确定我的调用是否正确。
我理解具有非常数数组的函数头,用于如下参数:
void fun(int *arr); // expects a pointer to a non-const int array of arbitrary size...
- 那么API函数声明的确切含义是什么呢
param
是通过值调用还是通过引用调用- 如何正确调用该函数
声明void f(int x[3]);
与void f(int *x);
相同,因此,函数需要接收一个指向API_SOMESTRUCT
的有效指针。否则,你就不知道它要做什么,它期望有多少元素,或者它要用它们做什么。你必须阅读文档。
如果非要我猜测的话,我会传入一个API_NUM_CONST
元素的数组,它只是在堆栈上分配的:
API_SOMESTRUCT param[API_NUM_CONST]
API_GetParameter(param);
// use param
相关文章:
- C++:使用 param pack 显式调用函数重载
- 如何将类成员函数与param绑定为boost::function的右值
- 这是在传递 int num 时创建搜索函数的正确方法吗?使用链表库
- C++:此代码可以编译,但引发运行时检查失败 #2 - 围绕变量周围的堆栈'num'已损坏。发生
- C++ Python 循环"for i, num in enumerate(list):"版本
- 如果我从single_digits[*num - '0']]中删除'0',为什么这个程序会崩溃)
- "a = new arr ***[num];"的含义是什么?
- 初始化时 num 的哪个值会给这个嵌套循环一个"true"输出?
- 语句中分配给 num 的值是什么
- 计算数的素数除数之和(非异数)直到 num 的有效替代方案
- 如何在Windows C MFC应用程序状态栏中禁用CAP NUM SCRL指示器
- 平台特定的std :: chrono :: high_resolution_clock :: ofence :: num
- 我可以创建一个可以接受任何枚举的模板(非类型)param类吗?C 11
- 我有这个单码字符串"Param�tres",è被转换为未知字符。
- 由于 RPTR->num=30 与 (*rptr).num=30 相同,但是*((*rptr).ptr).name 不起作用为什么?
- 了解 void f(const T¶m) 中的参数类型
- 使用VERTH with vector :: push_back作为第一个param时,C 编译错误
- 为什么openfileName lptrfiletitle param a lpstr而不是lpcstr
- <func-param> 函数模板中的is_const始终返回 false
- 如何使用以下参数调用函数:fun(Ty-param[NUM])