一定要初始化变量。永远要初始化。这个原则在《effective c++》中也作者提到过。
我从昨天到今天一直在修bug。
之前的代码在ubuntu14.04上跑一点问题都没有,昨天把代码放到windows下跑,各种问题。
我在vs2013中调试我的代码,程序运行到一半总是报XXXX内存无法访问,相当奇怪。后来我从release模式切换到debug,好了。关于release和debug的区别其实我一直没理解。
解决这个问题后,虽然程序是可以运行,但是结果不对,又是花了一上午来调试代码,大概总共有5000行左右的代码吧。
最后这个问题是因为我的变量没初始化,所以每次调用nohit()函数,hit默认其实都是true的,从而导致了错误的结果。而我以前在ubuntu下也没初始化这个变量,但是应该是编译器默认帮我初始化为false了,所以结果是正确的。
永远不要让编译器替你决定变量的初始值,这个很危险!!变量永远要初始化!!