我有一个用C写的函数
FindBeginKey(KeyListTraverser, BeginPage, BeginKey, key1);
BeginKey是函数调用前的指针,我没有初始化,比如
BeginKey = NULL;
在FindBeginKey()
函数中,我将BeginKey
赋值给另一个指针,并尝试打印出BeginKey
的当前地址功能,它工作正常。
但是当代码从函数返回时,我尝试再次打印出 BeginKey
的地址,它显示 0x0
。
为什么会这样,如果我想保留函数中赋值的地址,怎么办?
最佳答案
要从函数中传递一个值,您必须按引用 传递,而不是像 C 函数通常那样按值。要做到这一点,请使参数成为指向您要传递的类型的指针。然后使用 &
(地址操作数)将该值传递给调用。
例如
FindFoo(FOO** BeginKey);
并调用它:
FindFoo(&BeginKey);
在函数中:
*BeginKey = 0xDEADC0DE;
关于c - C函数中的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14923948/