一个程序栈崩溃(栈溢出)的简单示例(* ̄︶ ̄)

#include "stdafx.h"

int add(int i, int& nRst)
{
	if (i > 100000)
		return nRst;

	nRst += i;
	i++;
	return add(i, nRst);
}


int _tmain(int argc, _TCHAR* argv[])
{
	int nRst = 0;
	int i = 0;
	nRst = add(i, nRst);
	printf("%d\n", nRst);
	getchar();
	return 0;
}

崩溃原因如图:(栈溢出)
一个程序栈崩溃(栈溢出)的简单示例(* ̄︶ ̄)_第1张图片

一个程序栈崩溃(栈溢出)的简单示例(* ̄︶ ̄)_第2张图片

从程序栈的调用情况来看,递归到了4699层才崩掉,比我预估的1000好太多了。。。
不过4699这个数字对于程序来说并不是很大,所以平时在写代码的时候还是要注意一下,不要递归太深了orz

你可能感兴趣的:(C++)