| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 356 人关注过本帖
标题:请教一个关于递归传递值的问题!
只看楼主 加入收藏
清微御宇
Rank: 6Rank: 6
来 自:开封
等 级:侠之大者
威 望:2
帖 子:318
专家分:497
注 册:2012-1-15
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:3 
请教一个关于递归传递值的问题!
看了一道题主函数就不打出来

void max(int *a,int n,int i,int *pk)
{
       if(i<n)
      {
      if( a[i]<a[*pk])
     *pk=i;
max(a,M,++i,pk);//以前写i++调试时崩溃!
       }
}
我知道i++是先取i再加一就是想问问在这些值(max(……))传递过程中,都是如何对内存单元操作的!

[ 本帖最后由 清微御宇 于 2012-4-17 15:38 编辑 ]
搜索更多相关主题的帖子: void max 
2012-04-17 14:00
cuijunchao
Rank: 5Rank: 5
来 自:湖南桂东
等 级:职业侠客
威 望:3
帖 子:132
专家分:386
注 册:2012-4-4
收藏
得分:11 
递归很耗内存的,层数太多是会崩溃的。
2012-04-17 15:22
Wikyo_hoho
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:31
专家分:188
注 册:2012-3-12
收藏
得分:11 
你这个递归没有终止条件?无限递归下去,崩溃了。
max(a,M,i,pk)调用了之后,在max函数了又调用了max(a,M,++i,pk);然后这个函数又调用max(a,M,++++i,pk);就像这样无限调用下去
2012-04-17 15:35
清微御宇
Rank: 6Rank: 6
来 自:开封
等 级:侠之大者
威 望:2
帖 子:318
专家分:497
注 册:2012-1-15
收藏
得分:0 
回复 3楼 Wikyo_hoho
打抱歉错了,那个“}”放在下面的!

Stay hungry , Stay foolish!
2012-04-17 15:41
快速回复:请教一个关于递归传递值的问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022227 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved