昨天在写Uvaoj上面的题目的时候自己又写出了一个奇怪的代码, 我在进行一个正常的strcpy操作的时候, for循环里面的i的值却发生了莫名其妙的变化, 从当前值突然变成一个五位数, 最后直接导致程序运行的时候出现segment fault, strcpy里面没有跟i相关的任何操作, 并且更加诡异的是, 两台不同的电脑运行的时候出错的地方都不一样, 最后变成的五位数也都不一样.
运行的环境都是Ubuntu 14.04+ g++4.8.2 debug用的也都是gdb
具体的说明在这里(因为篇幅太长所以不好贴在V2ex上面):
http://blog.razrlele.com/strange0/PS:这一道题目我已经AC了, 所以并不是在伸手, 只是对于自己出现过的这个问题感到非常疑惑, 自己调试了很多遍也没发现问题出在哪里.
直接把全部代码贴出来了(不然好像难以重现bug), 所以可能会花比较长的时间来了解这个问题, 希望周末比较闲的V友可以帮忙看看, 谢谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/153637
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.