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