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

如题我想让传入的指针值修改为null,即让实参修改为null。急,解决了追加20分!!... 如题我想让传入的指针值修改为null,即让实参修改为null。
急,解决了追加20分!!
展开
 我来答
412595942
2010-07-20 · 超过16用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:41.8万
展开全部
楼主 其实很简单,例如你定义一个int a;
然后把&a的带入你的函数中,函数的形参为int *p;
在函数中把*p=null,不过最好是用宏定义,把null定位0;
这样a变量的地址所指向的值就变为0了

你要是有什么不懂得可以找我
epmhm
推荐于2016-08-03 · TA获得超过112个赞
知道小有建树答主
回答量:109
采纳率:0%
帮助的人:158万
展开全部
想实现你的想法也不难,只要用指针的指针即可,下面是我写的一个测试用例:
#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;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iamxmz
2010-07-20 · 超过13用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人: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.

同理其他操作,申请空间,改变指向等,也可以用指针的引用和指针的指针这两种方法完成.不过还是推荐指针的引用,在写代码时不容易写错.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vbtraz
2010-07-20 · TA获得超过5530个赞
知道大有可为答主
回答量:4152
采纳率:0%
帮助的人:4409万
展开全部
不可能
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式