【发布时间】:2020-08-29 11:23:11
【问题描述】:
我有如下所示的函数调用:
void funCall(float *inp, int INPLen, float *out, char Case)
{
if(case == 0)
{
memcpy(out, inp, INPLen*4);
}
else if(case == 1)
{
// Out will be result of arithmetic operations on **inp**
variable.
}
}
在案例 0 中,如果我使用
Out = (float*) Inp;
,而不是 memcpy,变量 Out 仅在函数内部保存输入值。这是什么原因?
除了memcpy还有其他方法吗?
【问题讨论】:
-
out是一个局部变量。更改它不会更改调用者的值。试试*out = *inp。
标签: c pointers pass-by-reference function-declaration