c语言如何给指针参数赋值为null?
4个回答
展开全部
想实现你的想法也不难,只要用指针的指针即可,下面是我写的一个测试用例:
#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;
}
#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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用指针的引用即可.
例如:
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.
同理其他操作,申请空间,改变指向等,也可以用指针的引用和指针的指针这两种方法完成.不过还是推荐指针的引用,在写代码时不容易写错.
例如:
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.
同理其他操作,申请空间,改变指向等,也可以用指针的引用和指针的指针这两种方法完成.不过还是推荐指针的引用,在写代码时不容易写错.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不可能
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询