aforgeter 2015-11-17 14:02 采纳率: 100%
浏览 2972
已采纳

结构体指针作为实参的值传递问题

#include
#include

struct Process
{
char name[5];
int again;
int serve;
char state;
struct Process *next;
};
void Set(struct Process *L)
{
struct Process Demo;
L=&Demo;
printf("%p\n",L);
}
int main(void)
{
struct Process *L=NULL;

Set(L);
if(L)
{
    printf("函数结束,空间释放!\n");
    printf("%p\n",L);
}
else
    printf("L地址为NULL\n");

return 0;

}
程序的运行结果为:
0000000000FDF0
L的地址为NULL

在这个程序中,我在main函数中声明了*L指针,本来打算在Set()函数中把L的地址改为Demo结构体变量的地址,可是程序的运行结果不对呀!怎么回事?求详解分析下!

只有1个币了,只能这次酬谢这么多了!谢谢呐!

  • 写回答

4条回答 默认 最新

  • javalaiba 2015-11-17 15:15
    关注

    你的set函数中demo变量本来就是空值,你把它赋给L它肯定输出空值啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况