发现了,为何RuntimeError。。。

来源:互联网 发布:国际软件测试工程师 编辑:程序博客网 时间:2024/04/28 22:36

sgu 125 让我快要崩溃,写了一个很纠结的搜索(搜的是给个方格间的大小关系,最后拓扑排序),每次交上去都Runtime Error on test 1,愤怒了,写了一个取数据的程序,如下:

 

 

 

发现第一个数据就是样例,但在我的机器上运行地好好的。估计是windows的原因,在虚拟机里面用gcc 3.4.2 (mingw) 编译运行,还是没有问题。

 

郁闷了一会儿,估计是编译参数的问题,于是查了一下sgu的FAQ,发现其编译参数是:

g++ %1 -fno-asm -Wall -lm -O2 -s -DONLINE_JUDGE

 

用该参数编译后,程序在windows上立即崩溃,在linux下(gcc 4.1.2)还是没事……

 

看来只好在winows下展开艰辛的debug。。。。。。

 

经过控制变量法试验,终于发现是-O2的问题。通过gdb,发现是一个数组开小了那么一点。。。 (ˇˍˇ)

诡异的是,在linux下竟然可得出正确答案。。。看来Linux内存管理算法不仅效率高,RP势能也很高。。。。。。

 

最后说明一下,使用该算法不仅程序纠结,而且算法好像根本是错的,WA on test 3 。。。

原创粉丝点击