遇到的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]后也被改了。所以单变量放到数组之前吧

posted @ 2021-10-13 21:33  qbning  阅读(76)  评论(0)    收藏  举报
描述