首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-02-26 
关于指针函数的一个问题返回指针的函数就叫指针函数对吧,现在的问题是被调函数一经返回,所有分配的变量就

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

[解决办法]
malloc()就是在堆上分配内存了,需要自己释放

static就不用说了

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

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

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

热点排行