求大神指教,对于函数里面给结构体成员赋值为什么到main函数
c语言吧
全部回复
仅看楼主
level 9
我只要这样
楼主
求大神指教,对于函数里面给结构体成员赋值为什么到main函数里面就是NULL了。关键是有什么办法可以解决呢?求助
2018年08月18日 02点08分
1
level 9
我只要这样
楼主
是不是因为函数传入的实际是结构体指针的形参。所以没有改变原指针指向的区域。
2018年08月18日 02点08分
2
level 11
fx2422esplus
你的init函数第一句,把p的值都给改了,然后给新p的位置赋值,原p里的当然不变了。。。把第一句去掉,这地方不需要malloc和free。
2018年08月18日 02点08分
3
我只要这样
冒昧的问一句,要再main函数里面用malloc吗?如果没有free会有什么危害吗?是不是要程序结束后要把所有申请空间全部free掉
2018年08月18日 02点08分
fx2422esplus
@我只要这样
这里不需要malloc,空间已经在栈里分配好了
2018年08月18日 03点08分
fx2422esplus
@我只要这样
没有free的话,内存会被分满的。结束之后会自动释放,但是要养成好习惯,记得free。
2018年08月18日 03点08分
我只要这样
谢谢了
2018年08月18日 03点08分
level 11
fx2422esplus
我觉得你的mallic根本没学好,谁教过你这种情况用malloc啊,而且还没有free
2018年08月18日 02点08分
4
level 9
我只要这样
楼主
不好意思
,我是自学摸索的。
2018年08月18日 02点08分
5
level 1
a2659802
如果你要在init里初始化的话,应该用二级指针,举个例子void Init(Ttree **p,elemtype root){
*p=malloc(sizeof())
(*p)->data=root
}
2018年08月18日 06点08分
7
1