C语言 结构体 函数调用问题

2024-11-29 10:19:39
推荐回答(3个)
回答1:

很简单,因为你的List Li, 这个是局部变量,它的内存是creat返回之后就被释放了,所以应该是一个不确定的值
改法:
可将List Li 搬到函数外面,做一个全局变量使用,也可以在main函数中定义,通过参数传入creat
list Li;
list * creat()
{
list*l;
l=&Li;
l->a=8;
return l;
}

回答2:

//问题出在下边这个函数上。
list
*
creat()
{
list
Li,*l;
//LI是局部变量,退出后会消失。所以
l=&Li这样是不稳定的。会引起系统崩溃。
l=&Li;
l->a=8;
return
l;
}
改为如下:
list
*
creat()
{
list
*l;
l=new
list;
l->a=8;
return
l;
}

回答3:

你creat函数里的Li是局部动态变量
执行完这个函数之后
Li所占的内存被释放了
你把它的地址赋给i是没有意义的
任意值都可能出现