- 博客(3)
- 资源 (2)
- 收藏
- 关注
原创 烫烫烫和屯屯屯
int p[16];原来写代码会出现死循环的烫烫烫,因为debug把所有分配出来的栈空间的每一个字节都初始化成0xCC。多个0xCC 的汉字编码就是n个“烫”。如果打印一个指针的值发现是0xCCCCCCCC,那么基本可以确定这个指针没有被初始化。如果未初始化的标记由0xCCCCCCCC变为0xCDCDCDCD,因为有时编译器会使用0xCDCDCDCD作为未初始化的标记,那么打印会出来“屯屯”。
2017-02-12 19:02:41 941 3
原创 《程序员的自我修养》--内存
内存布局一般有如下布局几个区: 栈:维护函数调用上下文,离开栈,函数调用没办法实现。 堆:容纳应用程序动态分配的内存区域。 可执行文件映像:可执行文件在内存里的映像。 保留区:队内存中受到保护,禁止访问的内存区域总称。 一个进程里典型的内存布局如下: 栈栈总是向下增长。栈顶由esp寄存器进行定位,压栈使得栈顶减小,出栈使得栈顶增加。单纯减小esp值等于在栈上开辟空间,单纯增加esp值等于
2017-02-12 18:52:28 323
原创 《程序员自我修养》--动态链接
定义和基本思想动态链接英文是Dynamic Linking需要解决空间浪费和更新困难这两个问题最简单的办法就是把程序的模块相互划分开来,形成独立的文件,而不再将他们静态的链接在一起。简单地讲,就是不对那些组成程序的目标文件进行链接,等到程序要运行时才进行链接。也就是说,把链接这个过程推迟到了运行时再进行,这就是动态链接(Dynamic Linking)的基本思想补充理解普通可执行程序和动态链接库都包
2017-02-09 20:51:59 719
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人