请大家帮我看下这段代码!为什么会无法返回?

wesleyluo 2013-04-11 03:45:58
下面的代码是ffserver里面的部分片段;
现在问题是程序执行到这个函数里面就卡住了,求解。
URLContext 为一个包含URLProtocol *prot结构的结构指针;
URLProtocol 结构中有一个函数指针url_close如下。
int url_close(URLContext *h)
{
int ret;
printf("url_close\n");

ret = h->prot->url_close(h);
av_free(h);
printf("url_close return\n");
return ret;
}
如果调用url_close(h);请问这个为什么在ret = h->prot->url_close(h);这句不返回呢?
...全文
200 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
如只是如初见 2013-04-12
  • 打赏
  • 举报
回复
引用 5 楼 dream238 的回复:
你的ret = h->prot->url_close(h)执行时又进入了int url_close(URLContext *h)? 那不是调用堆栈溢出了?递归出不来了
是的,递归死循环了,根本无法执行return ,所以会卡死。
ArcRain 2013-04-11
  • 打赏
  • 举报
回复
你的ret = h->prot->url_close(h)执行时又进入了int url_close(URLContext *h)? 那不是调用堆栈溢出了?递归出不来了
wesleyluo 2013-04-11
  • 打赏
  • 举报
回复
就是我上面的url_close函数啊
ArcRain 2013-04-11
  • 打赏
  • 举报
回复
那这个url_close的函数指针的代码实现有吗?有的话看看里面做了些什么。
wesleyluo 2013-04-11
  • 打赏
  • 举报
回复
URLProtocol是一个结构体啊,结构体里面有一个url_close的函数指针。
ArcRain 2013-04-11
  • 打赏
  • 举报
回复
有URLProtocol的代码的话,可以跟到调用函数里看看,堵塞在哪一步。

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧