使用sprintf時溢出怎么會影響到變量的值?
大概從匯編層面了解下程序運行的原理吧
1.函數調用(main也是被編譯器或是操作系統的某個方法調用的啦),每當調用一個函數是棧指針就會移動,分配函數內部定義局部變量所需的空間,就像你定義的倆buf,這倆buf的內存在release編譯模式下是一般連續的,對其中一個的訪問越界自然數據就會串到另外一個局部變量里了。
2.學習建議,不要搞什么編譯原理,晦澀難懂,既然樓主能看反匯編,何不寫個簡單的demo,分析調試下變量的內存分布,函數調用時堆棧移動等等,其實也就那么回事沒啥難的。
上一篇今年高考考生有多難呢
下一篇python中dir