diff --git a/README.md b/README.md index 63ab02a..dd1a302 100644 --- a/README.md +++ b/README.md @@ -140,8 +140,8 @@ 一般应用程序内存空间有如下区域: -* 栈:用于维护函数调用的上下文 -* 堆:用来容纳应用程序动态分配的内存区域 +* 栈:由操作系统自动分配释放,存放函数的参数值、局部变量等的值,用于维护函数调用的上下文 +* 堆:一般由程序员分配释放,若程序员不释放,程序结束时可能由操作系统回收,用来容纳应用程序动态分配的内存区域 * 可执行文件映像:存储着可执行文件在内存中的映像,由装载器装载是将可执行文件的内存读取或映射到这里 * 保留区:保留区并不是一个单一的内存区域,而是对内存中受到保护而禁止访问的内存区域的总称,如通常C语言讲无效指针赋值为0(NULL),因此0地址正常情况下不可能有效的访问数据