损坏调用堆栈的CC++代码

损坏调用堆栈的CC++代码,第1张

概述是否有可能通常的代码损坏c / c中的调用堆栈? 我不是指某种黑客或某种东西,只是一种疏忽的错误或其他东西,而不是随意的,这样每次都会损害它. 有人告诉我,一位前同事管理但我不认为这是可能的. 有人有这样的经历吗? 是的,很容易.事实上,这是一个非常常见的问题.考虑一下: void foo(){ int i; int *p = &i; p -= 5; // now poi 是否有可能通常的代码损坏c / c中的调用堆栈?
我不是指某种黑客或某种东西,只是一种疏忽的错误或其他东西,而不是随意的,这样每次都会损害它.
有人告诉我,一位前同事管理但我不认为这是可能的.
有人有这样的经历吗?解决方法 是的,很容易.事实上,这是一个非常常见的问题.考虑一下:

voID foo(){    int i;    int *p = &i;    p -= 5; // Now point somewhere god kNows where,generally undefined behavior    *p = 0; // boom,on different compilers will end up with varIoUs bad things,// including potentially trashing the call stack}

许多本地数组/缓冲区的超出边界访问的情况最终都是被破坏的堆栈.

总结

以上是内存溢出为你收集整理的损坏调用堆栈的C/C++代码全部内容,希望文章能够帮你解决损坏调用堆栈的C/C++代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1219564.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存