- 博客(7)
- 收藏
- 关注
原创 -内存泄露初探-
某次面试,被问及内存泄露相关事宜,当时瞠目结舌,故现对此话题比较敏感。(1)WHAT 什么是内存泄露? 部分内存不在程序的管理范围内了,即脱离了管理。(2)WHY 内存泄露是怎么产生的?调用malloc分配内存之后,忘记调用相应的free函数释放它。从而导致废弃内存越来越多,从而可能导致程序或系统崩溃。(一种解决的简单方法就是使用 alloca 函数来代替 malloc 分配内
2007-09-29 21:23:00 535
原创 段错误(Segment Fault!)莫名的问题 by fish
段错误或段违规(segmentation violation)应该已经很清楚,之前有过一篇文章介绍过“段模型”。在一般硬件中,段错误是由于“内存管理单元”(负责支持虚拟内存的硬件)的异常所致,而该异常则通常是由于解除引用一个未初始化或非法值的指针引起的。如果指针引用一个并不位于你的地址空间中的地址,操作系统便会对此进行干涉。一个小型的会引起段错误的程序如下:int *p = 0;*p
2007-09-30 14:17:00 1740
原创 用于检查源代码的工具(更新中!)
用于检查源代码的工具 工具 位于何处 所做工作 cb 随编译器附带 C程序美化器,在源文件中运行这个过滤器,可以使源文件有标准的布局和缩进格
2007-09-29 15:27:00 1048
原创 C语言编译中的“段”
对于目标文件而言,“段”是二进制文件中简单的区域,里面保存了和某种特定类型(如符号表条目)相关的所有信息。section 是 ELF 文件中的最小组织单位。一个段一般包含几个section。不要把UNIX中段的概念跟Intel X86架构中段的概念混淆。在UNIX中,段表示一个二进制文件相关的内容块。 在Intel x86的内存模型中,段表示一种设计的结果。在这种设计中(基于兼容性原因),
2007-09-28 16:06:00 1004
原创 PC链接器提供的几个基本的I/O服务——BIOS程序
BIOS:BIOS(Basic Input/Output System,基本输入输出系统)全称是ROM-BIOS,是只读存储器基本输入/输出系统的简写,它实际是一组被固化到电脑中,为电脑提供最低级最直接的硬件控制的程序,它是连通软件程序和硬件设备之间的枢纽,通俗地说,BIOS是硬件与软件程序之间的一个“转换器”或者说是接口(虽然它本身也只是一个程序),负责解决硬件的即时要求,并按软件对硬件的操
2007-09-27 19:37:00 614
原创 理解C语言声明的优先级规则(一个复杂的例子)
A 声明从它的名字开始读取,然后按照优先级顺序依次读取;B 优先级从高到低依次是: B.1 声明中被括号括起来的那部分 B.2 后缀操作符; 括号()表示这是一个函数,而 方括号[] 表示这是一个数组。 B.3 前缀操作符; 星号
2007-09-27 13:32:00 984 1
原创 some cases about "const" in C Program
关键字const并不能把变量变成常量!在一个符号前加上const限定符只是表示这个符号不能被赋值。也就是它的值对于这个符号来说是只读的,但它并不能防止通过程序的内部(甚至是外部)的方法来修改这个值。const最有用之处就是用它来限定函数的形参,这样该函数将不会修改实参指针所指的数据,但其他的函数却可能会修改它,这也许就是C和C++中const最一般的用法。---------〈C专家编程〉c
2007-09-26 16:39:00 450
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人