runaway

runaway函数

-这个程序是查看你所用的电脑中所分配的栈的大小

#include <stdio.h>
#include <stdlib.h>
int recurse(int x) {
    int a[1<<15];  /* 4 * 2^15 =  64 KiB */
    printf("x = %d.  a at %p\n", x, a); 
    a[0] = (1<<14)-1;
    a[a[0]] = x-1;
    if (a[a[0]] == 0)
 return -1;
    return recurse(a[a[0]]) - 1;
}
int main(int argc, char *argv[]) {
    int x = 100;
    if (argc > 1)
 x = atoi(argv[1]);
    int v = recurse(x);
    printf("x = %d.  recurse(x) = %d\n", x, v);
    return 0;
}
gcc编译后的结果:
zhangjinxue@zhangjinxue-virtual-machine:/mnt/hgfs/2019linux/runaway$ ./a.out
x = 100.  a at 0x7ffd1756cf40
x = 99.  a at 0x7ffd1754cf10
x = 98.  a at 0x7ffd1752cee0
x = 97.  a at 0x7ffd1750ceb0
x = 96.  a at 0x7ffd174ece80
x = 95.  a at 0x7ffd174cce50
x = 94.  a at 0x7ffd174ace20
x = 93.  a at 0x7ffd1748cdf0
x = 92.  a at 0x7ffd1746cdc0
x = 91.  a at 0x7ffd1744cd90
x = 90.  a at 0x7ffd1742cd60
x = 89.  a at 0x7ffd1740cd30
x = 88.  a at 0x7ffd173ecd00
x = 87.  a at 0x7ffd173cccd0
x = 86.  a at 0x7ffd173acca0
x = 85.  a at 0x7ffd1738cc70
x = 84.  a at 0x7ffd1736cc40
x = 83.  a at 0x7ffd1734cc10
x = 82.  a at 0x7ffd1732cbe0
x = 81.  a at 0x7ffd1730cbb0
x = 80.  a at 0x7ffd172ecb80
x = 79.  a at 0x7ffd172ccb50
x = 78.  a at 0x7ffd172acb20
x = 77.  a at 0x7ffd1728caf0
x = 76.  a at 0x7ffd1726cac0
x = 75.  a at 0x7ffd1724ca90
x = 74.  a at 0x7ffd1722ca60
x = 73.  a at 0x7ffd1720ca30
x = 72.  a at 0x7ffd171eca00
x = 71.  a at 0x7ffd171cc9d0
x = 70.  a at 0x7ffd171ac9a0
x = 69.  a at 0x7ffd1718c970
x = 68.  a at 0x7ffd1716c940
x = 67.  a at 0x7ffd1714c910
x = 66.  a at 0x7ffd1712c8e0
x = 65.  a at 0x7ffd1710c8b0
x = 64.  a at 0x7ffd170ec880
x = 63.  a at 0x7ffd170cc850
x = 62.  a at 0x7ffd170ac820
x = 61.  a at 0x7ffd1708c7f0
x = 60.  a at 0x7ffd1706c7c0
x = 59.  a at 0x7ffd1704c790
x = 58.  a at 0x7ffd1702c760
x = 57.  a at 0x7ffd1700c730
x = 56.  a at 0x7ffd16fec700
x = 55.  a at 0x7ffd16fcc6d0
x = 54.  a at 0x7ffd16fac6a0
x = 53.  a at 0x7ffd16f8c670
x = 52.  a at 0x7ffd16f6c640
x = 51.  a at 0x7ffd16f4c610
x = 50.  a at 0x7ffd16f2c5e0
x = 49.  a at 0x7ffd16f0c5b0
x = 48.  a at 0x7ffd16eec580
x = 47.  a at 0x7ffd16ecc550
x = 46.  a at 0x7ffd16eac520
x = 45.  a at 0x7ffd16e8c4f0
x = 44.  a at 0x7ffd16e6c4c0
x = 43.  a at 0x7ffd16e4c490
x = 42.  a at 0x7ffd16e2c460
x = 41.  a at 0x7ffd16e0c430
x = 40.  a at 0x7ffd16dec400
x = 39.  a at 0x7ffd16dcc3d0
x = 38.  a at 0x7ffd16dac3a0
段错误 (核心已转储)
zhangjinxue@zhangjinxue-virtual-machine:/mnt/hgfs/2019linux/runaway$ ./a.out 20x = 20.  a at 0x7ffc21259040
x = 19.  a at 0x7ffc21239010
x = 18.  a at 0x7ffc21218fe0
x = 17.  a at 0x7ffc211f8fb0
x = 16.  a at 0x7ffc211d8f80
x = 15.  a at 0x7ffc211b8f50
x = 14.  a at 0x7ffc21198f20
x = 13.  a at 0x7ffc21178ef0
x = 12.  a at 0x7ffc21158ec0
x = 11.  a at 0x7ffc21138e90
x = 10.  a at 0x7ffc21118e60
x = 9.  a at 0x7ffc210f8e30
x = 8.  a at 0x7ffc210d8e00
x = 7.  a at 0x7ffc210b8dd0
x = 6.  a at 0x7ffc21098da0
x = 5.  a at 0x7ffc21078d70
x = 4.  a at 0x7ffc21058d40
x = 3.  a at 0x7ffc21038d10
x = 2.  a at 0x7ffc21018ce0
x = 1.  a at 0x7ffc20ff8cb0
x = 20.  recurse(x) = -20
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值