c语言如何给指针参数赋值为null?

如题我想让传入的指针值修改为null,即让实参修改为null。
急,解决了追加20分!!

楼主 其实很简单,例如你定义一个int a;
然后把&a的带入你的函数中,函数的形参为int *p;
在函数中把*p=null,不过最好是用宏定义,把null定位0;
这样a变量的地址所指向的值就变为0了

你要是有什么不懂得可以找我
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-08-03
想实现你的想法也不难,只要用指针的指针即可,下面是我写的一个测试用例:
#include <stdio.h>

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;
}本回答被提问者采纳
第2个回答  2010-07-20
用指针的引用即可.
例如:
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.

同理其他操作,申请空间,改变指向等,也可以用指针的引用和指针的指针这两种方法完成.不过还是推荐指针的引用,在写代码时不容易写错.
第3个回答  2010-07-20
不可能
相似回答