「已注销」 2018-10-03 10:06 采纳率: 50%
浏览 768
已采纳

为什么有时候闪退 ?

#include
#include

main()
{
int c=0;
srand((unsigned) time(NULL));
c=rand()%5;
if(c<2)
{
printf("%d",c);
}else
{
main();
}
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2018-10-03 17:49
    关注

    因为相同的随机数种子生成相同的随机数,而你使用time作为种子,所以在短时间里,每次得到的c都一样。
    这导致一旦c>=2而且每次都是一样的值,那么就会在main里无限递归调用main最后堆栈溢出了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥20 游戏mod是如何制作的
  • ¥15 关于#hadoop#的问题:按照老师上课讲的步骤写的
  • ¥20 有人会用这个工具箱吗 付fei咨询
  • ¥30 成都市武侯区住宅小区兴趣点
  • ¥15 Windows软实时
  • ¥15 自有服务器搭建网络隧道并且负载均衡
  • ¥15 opencv打开dataloader显示为nonetype
  • ¥15 MacOS 80端口外网无法访问
  • ¥50 js逆转反解密-会的来
  • ¥15 wrodpress如何调取数据库并展示
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部