我一直读到,为了修改 C 函数中的任何变量,您必须传递指向该变量的指针。
如果我想删除链表中的一个特定元素,我会这样做:
int DeleteElement(element **head, element *deleteMe)
{
free(deleteMe);
return 1;
}
为什么我可以释放 deleteMe 并在 DeleteElement 函数之外反射(reflect)出来? deleteMe 不是函数内部的另一个东西吗?
谢谢
最佳答案
您没有向指针 deleteMe
写入任何内容。您正在使用它(以只读方式)来确定要释放的对象(它指向的对象)。
关于c - 为什么我可以在一个方法中传递一个指针和 "free"里面的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14425512/