C语言
文章平均质量分 56
JamesFen
这个作者很懒,什么都没留下…
展开
-
C语言 FREE()函数注意点
C语言中,malloc, alloc, free是c定义的一组内存管理的API函数,free可以释放calloc, malloc, realloc动态分配的空间,当你调用malloc、alloc分配内存时,不仅仅是从堆里面分配得到了可用内存,实际上内存管理子系统还会维护了内存列表(你定义的普通指针不会出现这个列表中)。 而对于使用new, GlobalAlloc之类的方式分配的内存可不可以使用fr转载 2017-03-27 21:21:31 · 12743 阅读 · 2 评论 -
C 语言中的指针和内存泄漏
引言对于任何使用 C 语言的人,如果问他们 C 语言的最大烦恼是什么,其中许多人可能会回答说是指针和内存泄漏。这些的确是消耗了开发人员大多数调试时间的事项。指针和内存泄漏对某些开发人员来说似乎令人畏惧,但是一旦您了解了指针及其关联内存操作的基础,它们就是您在 C 语言中拥有的最强大工具。本文将与您分享开发人员在开始使用指针来编程前应该知道的秘密。本文内容包括:导致内存破转载 2017-03-27 21:24:33 · 456 阅读 · 0 评论 -
C语言 宏的高级用法
1. 宏参数里的#号 在一个宏中的参数前面使用一个#,预处理器会把这个参数转换为一个字符数组。简化理解:#是“字符串化”的意思,出现在宏定义中的#是把跟在后面的参数转换成一个字符串#define ERROR_LOG(module) fprintf(stderr,"error: "#module"\n")ERROR_LOG(“add”); 转换为 fprintf(stderr,”error:原创 2017-03-20 21:14:55 · 1323 阅读 · 0 评论 -
C语言fscanf函数读取结构化数据
int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) fscanf()分隔符是;空格、tab、回车,读取成功返回所读的字段数,读取失败或读取结束返回EOF。fscanf()是按照__format的格式读取字段, 如下面代码例子,%s%d%s表示一次读入2个字段,读完第原创 2017-03-22 11:21:03 · 5817 阅读 · 2 评论 -
Big endian and Little endian
大端和小端(Big endian and Little endian)一、大端和小端的问题对于整型、长整型等数据类型,Big endian 认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节);而 Little endian 则相反,它认为第一个字节是最低位字节(按照从低地址到高地址的顺序存放据的低位字节到高位字节)。例如,假设从内存地址转载 2017-03-29 17:19:19 · 399 阅读 · 0 评论 -
位域内存中存储形式
struct BitField{ unsigned char a:2; //最低位; unsigned char b:3; unsigned char c:3; //最高位;}bf;bf.a=2;//10bf.b=4;//100bf.c=3;//011输出: 011 100 10位域中的位域字段按照从低位向高位顺序方式的顺序来看,那么,a、b、c这三个位域字段原创 2017-03-29 21:47:59 · 1447 阅读 · 0 评论 -
B树的插入、删除操作
上面第2小节学习简单介绍了利用B树这种结构如何访问外存磁盘中的数据的情况,下面咱们通过另外一个实例来对这棵B树的插入(insert),删除(delete)基本操作进行详细的介绍。 但在此之前,咱们还得简单回顾下一棵m阶的B 树 (m叉树)的特性,如下:1. 树中每个结点含有最多含有m个孩子,即m满足:ceil(m/2)m2. 除根结点和叶子结点外,其它每个结点至少有[转载 2017-05-23 17:25:53 · 3968 阅读 · 2 评论 -
B+ tree 删除算法
MDB+ 树有两种定义,一是严蔚敏老师的数据结构一书的定义,二是维基百科的定义,本文采用维基百科的定义并实现。https://en.wikipedia.org/wiki/B%2B_tree 前提知识:掌握B-tree ,了解B+插入算法及流程。1.算法描述与B-tree不同,B+tree只能从叶子删除,从叶子删除元素分为三次循环的三种情形:第一次循环,如果满足条件结束,否则:第二次循环,如原创 2017-07-13 16:34:15 · 3834 阅读 · 0 评论