关于指针函数的一个有关问题

关于指针函数的一个问题
返回指针的函数就叫指针函数对吧,
现在的问题是被调函数一经返回,所有分配的变量就被释放,这样的话是不是必须把返回那个变量指定为static或者malloc分配空间啊?

------解决方案--------------------
malloc()就是在堆上分配内存了,需要自己释放

static就不用说了

二者皆可!
------解决方案--------------------
p=fun2()后,fun1申请的那块空间的就无法free,因为找不到地址了
在p=fun2()之前先释放
------解决方案--------------------
不要记什么指针函数,函数指针,很容易混的
主要在于理解
记住动态局部变量,也就是在栈内的不能返回
p = fun1();后然p = fun2();的话fun1()里面分配的内存什么释放掉啊
你这样会造成内存泄漏,如果第一快不要的话一定要及时free
------解决方案--------------------
局部变量的生命期,
在函数返回后就丢失了 ~

如果仅需要返回一个局部变量值,
那么在函数末尾 return 该值即可 ~

如果是多个,
那么就需要用点技巧,
比如传递数组 或者 malloc分配空间并返回空间首地址等 ····