我对如何通过引用在函数中传递指针感到有些困惑?
例如,这是我编写的一些代码(我没有复制整个函数,只是其中相关的部分)
metadata * removeBlock(metadata *first)
{
metadata *temp = first;
if(first == NULL || first -> prev == NULL)
{
first -> in_use = 1;
first = NULL;
return temp;
}
}
我想要的是,当函数返回时,传入的原始值应该设置为NULL。这是我调用函数的方式,(这行代码将从堆中的一个区域中提取一个元数据结构,它工作正常,我已经调试并确保在此之后,struct 确实指向一个有效的元数据结构)
metadata *strct = ((metadata *)ptr - sizeof(metadata));
removeBlock(strct);
但是,在此方法返回后,strct 仍然是我在函数中传递它之前的值。我尝试传入 &strct,但这只是抛出了一个无效的强制转换异常。将结构作为参数传递的最佳方法是什么?
谢谢你。