-进程的记忆体布局
**缓冲区(Buffer)**是指用于存储特定大小数据的一段内存。如果数据大小大于缓冲区大小,它就会溢出。它通常会导致异常受特权提升或返回到堆栈中的代码地址。如果正确安排输入验证和异常处理程序,可以有效地缓解缓冲区溢出。
**记忆体洩漏(Memory leak)**是一个常见的应用程序问题。应用程序或进程在由操作系统加载和启动时被分配了有限的记忆体大小,也就是堆。该进程可能会请求记忆体段,但不会将它们返回给操作系统。可用内存最终用完了。性能越来越差,可能会导致进程崩溃。现代运行时框架,例如 .NET、JVM,提供垃圾收集或引用计数器来解决这个问题。
资料来源: Wentz Wu 网站