是什么STATUS_STACK_BUFFER_OVERRUN和STATUS_STACK_OVERFL

2019-08-01 08:25发布

我只是发现有一个STATUS_STACK_BUFFER_OVERRUN和STATUS_STACK_OVERFLOW。 什么是那些2之间的区别? 我只是发现堆栈溢出(堆栈用尽)不一样的堆栈缓冲区溢出 ,但要么没有解释,否则我不明白。 你能帮我吗?

问候托比亚斯

Answer 1:

请看下面的堆栈,它在内存中向下增长:

+----------------+
| some data      |   |
+----------------+   | growth of stack
| 20-byte string |   V
+----------------+
 limit of stack

当你写30个字节的20字节的字符串时,会发生缓冲区溢出。 此破坏的条目进一步堆栈向上(“一些数据”)。

堆栈溢出是当你试图把别的东西堆栈时,它已经满(它说:“堆栈的限制”)。 堆栈是在其最大尺寸通常是有限的。



Answer 2:

Stackoverflow时,有内存中没有更多的空间分配给您的数据,并出现buffer overrun又名buffer overflow时,调用程序超支缓冲区边界写入/的内存意想不到部分覆盖数据(需要更多的内存比预期)。

轻松,你可以通过阅读标签说明理解这个计算器和缓冲区溢出



文章来源: What is the difference between STATUS_STACK_BUFFER_OVERRUN and STATUS_STACK_OVERFLOW?