我只是发现有一个STATUS_STACK_BUFFER_OVERRUN和STATUS_STACK_OVERFLOW。 什么是那些2之间的区别? 我只是发现堆栈溢出(堆栈用尽)不一样的堆栈缓冲区溢出 ,但要么没有解释,否则我不明白。 你能帮我吗?
问候托比亚斯
我只是发现有一个STATUS_STACK_BUFFER_OVERRUN和STATUS_STACK_OVERFLOW。 什么是那些2之间的区别? 我只是发现堆栈溢出(堆栈用尽)不一样的堆栈缓冲区溢出 ,但要么没有解释,否则我不明白。 你能帮我吗?
问候托比亚斯
请看下面的堆栈,它在内存中向下增长:
+----------------+
| some data | |
+----------------+ | growth of stack
| 20-byte string | V
+----------------+
limit of stack
当你写30个字节的20字节的字符串时,会发生缓冲区溢出。 此破坏的条目进一步堆栈向上(“一些数据”)。
堆栈溢出是当你试图把别的东西上堆栈时,它已经满(它说:“堆栈的限制”)。 堆栈是在其最大尺寸通常是有限的。
Stackoverflow
时,有内存中没有更多的空间分配给您的数据,并出现buffer overrun
又名buffer overflow
时,调用程序超支缓冲区边界写入/的内存意想不到部分覆盖数据(需要更多的内存比预期)。
轻松,你可以通过阅读标签说明理解这个计算器和缓冲区溢出 。