今天的调试再次证明了C Primer Plus说的一句话,全局数组不要乱开
尤其是有递归的情况
like this:
int a[];
void dfs()
{
//a数组的初始化
dfs();
//对a数组进行操作
}
程序的执行是这样的,先初始化
然后进入下一层递归
可以预见的是,经过递归后,a数组已经不是当初的模样。。。
类似的例子太多了。。。
今天绝对是手滑了,也可以说是自己的编程习惯不好吧。
反正那种只需要在递归里才用到的数组尽量递归的时候再定义
或者这样:
void dfs()
{
dfs();
//a数组的初始化
//对a数组进行操作
}
先做递归处理,然后你爱咋操作咋操作
尤其是有递归的情况
like this:
int a[];
void dfs()
{
//a数组的初始化
dfs();
//对a数组进行操作
}
程序的执行是这样的,先初始化
然后进入下一层递归
可以预见的是,经过递归后,a数组已经不是当初的模样。。。
类似的例子太多了。。。
今天绝对是手滑了,也可以说是自己的编程习惯不好吧。
反正那种只需要在递归里才用到的数组尽量递归的时候再定义
或者这样:
void dfs()
{
dfs();
//a数组的初始化
//对a数组进行操作
}
先做递归处理,然后你爱咋操作咋操作