遇到的string的一个bug,貌似就是溢出吧
今天在水题时遇到一个bug

如图。
a显然被更改了

但当把ans放到s前面的时候发现对ans没有了影响
下面我们进行下测试
输入123456789.....直到ans的值被更改

到现在a仍未被更改

我们可以看到ans已经被更改为56
而如果我们再对a进行赋值,我们可以发现,它们的地址尽管没有改变,但s似乎变成了空的


我们再次修改一下代码
我再怀疑是不是

发现尽管s和a之间分配的空间大小为24字节,但当我a随便输一个数的时候,s都变成了0
我们看看string的定义

可以得知string其实是basic_string

其实这些我一个也没看懂(doge)
至于再深入研究,估计得到编译原理了
更新:队友的ans放到a[1001][1001]后也被改了。所以单变量放到数组之前吧
作者:qbning
-------------------------------------------
个性签名:曾经的我们空有一颗望海的心,却从没为前往大海做过真正的努力
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

浙公网安备 33010602011771号