04-常见内存错误以及valgrind使用
代码段:
只读数据,因此对这一部分的数据,试图写只读数据,这个在编译的时候基本上可以检测。
数据段/BSS段:
未初始化直接访问,即使没有显示初始化,仍然会初始化为0
栈空间数据:
(1)局部变量,未初始化变量会给随机的初值,出现异常情况更诡异
(2)栈溢出:在栈中申请过大的局部变量
堆空间数据
内...
分类:
其他好文 时间:
2014-09-28 18:41:43
阅读次数:
350
do_fork()实现一、在分析do_fork()之前,我们需要对进程要有一定的认识,因为do_fork()是创建进程的。进程四要素:1、有一段程序供其执行;2、有进程专用的系统堆栈空间,即内核栈;3、有进程控制块task_struct结构体;4、有独立的存储空间,专用的用户空间,即用于虚存管理的m..
分类:
其他好文 时间:
2014-09-24 20:52:28
阅读次数:
228
原文地址:http://www.pconline.com.cn/pcedu/empolder/gj/c/0503/563879.html 在c++中,为了解决一些频繁调用的小函数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联函数。 可能说到这里,很多人还不明白什么.....
分类:
编程语言 时间:
2014-09-22 16:22:02
阅读次数:
229
tail recursion函数在调用的时候,会提前创建一个栈空间,给传递的参数也分配空间,当函数结束返回上层函数的时候,一些局部变量需要从栈中弹出并恢复到调用子函数之前的值,返回到上一个函数调用子函数之前的现场。如果是尾递归,从子函数返回的时候这个函数同时也会结束了,所以没有必要恢复一些局部变量,...
分类:
其他好文 时间:
2014-09-21 21:12:11
阅读次数:
207
多线程编程,有时希望每个线程的数据相互隔离互不影响,有时却希望线程间能共享数据,并保持同步。本篇体验多线程共享和不共享数据。 □ 多线程不共享数据 对于多线程,CLR到底是怎样为它们分配内存栈空间呢?是"一个萝卜一个坑",每个线程都有自己的栈空间;还是"大树底下好乘凉",所有的线程共享同一个栈空间?...
分类:
编程语言 时间:
2014-09-19 17:30:35
阅读次数:
290
内联函数内联函数与带参数宏区别新的类型转换运算符const_cast(expr)static_cast(expr)reinterpret_cast(expr) dynamic_cast(expr)当程序执行函数调用时,系统要建立栈空间,保护现场,传递参数以及控制程序执行的转移等等,这些工作需要系统时...
分类:
编程语言 时间:
2014-09-17 16:44:52
阅读次数:
258
稳定性、内 外存储、有序区、无序区稳定性(个人理解),原来相同的数相对位置不变,就是稳定的。平均时间复杂度最差时间复杂度辅助空间(空间复杂度)稳定否?最好时间复杂度选择排序不稳定希尔排序不稳定堆排序不稳定快排N*log(N)N2需要一个栈空间来实现递归最坏为N, 可以是log(N)不稳定冒泡N2N2...
分类:
其他好文 时间:
2014-09-09 11:33:58
阅读次数:
198
2) { abc(--$n); } echo '$n='.$n.''; } abc(4); //输出 2 2 3 每次遇到函数调用就会开辟一个栈空间?>
分类:
Web程序 时间:
2014-08-28 00:44:28
阅读次数:
282
RT-Thread中支持静态和动态两种定义方式。用线程来举例的话,rt_thread_init对应静态定义方式,rt_thread_create对应动态定义方式。使用静态定义方式时,必须先定义静态的线程控制块,并且定义好堆栈空间,然后调用rt_thread_init来完成线程的初始化工作。采用这种方...
分类:
编程语言 时间:
2014-08-23 11:16:30
阅读次数:
191
jvm启动的时候会固定分配内存,将其分为程序计数器,堆内存,栈内存。程序计数器记录每个线程下一条指令的地址。堆内存存放类的实例变量和数组,空间是共享的栈内存存放局部变量,每个线程拥有私有的栈空间垃圾回收器(gc)主要负责堆内存的回收任务。栈内存中的内容存活的周期非常短。堆内存中可以分为,年轻代,老年...
分类:
其他好文 时间:
2014-08-15 17:23:19
阅读次数:
167