1. 程式人生 > 其它 >遇到的string的一個bug,貌似就是溢位吧

遇到的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)
至於再深入研究,估計得到編譯原理了

作者:qbning 出處:http://www.cnblogs.com/qbning/

-------------------------------------------

個性簽名:曾經的我們空有一顆望海的心,卻從沒為前往大海做過真正的努力

如果覺得這篇文章對你有小小的幫助的話,記得在右下角點個“推薦”哦,博主在此感謝!