楼主 其实很简单,例如你定义一个int a;
然后把&a的带入你的函数中,函数的形参为int *p;
在函数中把*p=null,不过最好是用宏定义,把null定位0;
这样a变量的地址所指向的值就变为0了
你要是有什么不懂得可以找我
想实现你的想法也不难,只要用指针的指针即可,下面是我写的一个测试用例:
#include
void Func(int ** p)
{
* p = NULL;
}
int main()
{
int a = 1;
int * p = &a;
Func(&p);
if (p == NULL)
{
printf("p == NULL\n");
}
else
{
printf("p != NULL\n");
}
return 0;
}
用指针的引用即可.
例如:
int memnull(int *¶m)
{
param = NULL;
return 0;
}
在另一个函数里调用它:
int *a;
memnull(a);
memnull运行完之后a的地址就被修改为NULL了.
或者可以用指针的指针:
int memalloc(int **param)
{
*param = NULL;
return 0;
}
调用的时候这样调用:
int *a;
memnull(&a);
这样memnull函数运行完后a的地址也会被修改为NULL.
同理其他操作,申请空间,改变指向等,也可以用指针的引用和指针的指针这两种方法完成.不过还是推荐指针的引用,在写代码时不容易写错.
不可能