当字符数组的首地址,强制转化成 指针后: sizeof( ptr) 不为array的大小; ...
分类:
编程语言 时间:
2018-05-13 19:58:57
阅读次数:
231
1.offsetof(TYPE, MEMBER) offsetof是一个自定义的宏,其返回值是一个member成员在一个type类型的结构体中相对于结构体首地址的字节偏移量; 分析其工作原理: 1.(TYPE *)0将0地址强制转换成TYPE *类型指针 且可以认为,这个类型的结构体的首地址是0x0 ...
分类:
其他好文 时间:
2018-05-13 13:50:37
阅读次数:
167
函数:mmap() 作用:创建内存映射区,将磁盘上的文件数据映射到内存,用户通过内存就能修改磁盘文件。 优点:效率高 缺点:不阻塞,麻烦(对效率不是很高的要求建议用管道) 函数原型: mmap参数说明: addr:内存映射区的首地址,传NULL length:映射区大小,不能为0,一般文件长度多大就 ...
分类:
系统相关 时间:
2018-05-12 02:54:49
阅读次数:
218
PE文件中重要的表有:1.导出表,2.导入表,3.IAT表,4.重定位表,5.资源表导入表的结构体: 以上结构体成员不多,而且有用的成员只有第一个共用体成员,第四个dll名称,第五个FirstThunk(ITA表首地址)。一一详解如下: 1)第一个成员虽为共用体,但常用的类型是共用体中第二个成员DW ...
分类:
其他好文 时间:
2018-05-08 16:27:05
阅读次数:
144
一、fgets(str,n,fp); fgets(str,n,fp);就是从fp指向的文件中读取n-1个字符送入字符数组str中。 说明:1、在读出n-1个字符之前,如果遇到了换行符或者EOF,则读出结束。 2、fgets函数也有返回值,其返回值是字符数组的首地址。 二、fputs("abcd",f ...
分类:
其他好文 时间:
2018-05-02 02:34:18
阅读次数:
204
C语言 链表 链表 **结点:**每个空间采用动态数据分配,,每个数据空间保存一个数据,可以根据需求分配数据空间数,而每个数据空间就叫做一个结点。每个结点结构中,我们定义一个成员存放下一个结点的首地址,用于存放下一个结点的成员,这个称为指针域 **链表:**第一个结点的指针域存放下一个结点的首地址, ...
分类:
编程语言 时间:
2018-04-30 18:01:15
阅读次数:
166
1.先介绍C++类的内存结构,大家可以看以下博客,觉得不错 https://blog.csdn.net/fenxinzi557/article/details/51995911 其中和本次相关的知识点是一个有虚函数的类的前4个字节是指向虚函数表首地址的指针_vfptr 2.下面开始说具体的求解过程 ...
分类:
编程语言 时间:
2018-04-30 17:55:25
阅读次数:
167
在C语言中为了节省空间,提高运行速度经常使用指针来完成数组的传递。 对于一维数组而言可以直接传递首地址 而对于二维数组必须在传递时声明是二维数组的指针,并且调用时也要经过一些运算 首先是定义形参: 函数名(int *arg) 向这个形参传递实参: 函数名(&data[0][0]) 取出i行j列的一个 ...
分类:
编程语言 时间:
2018-04-29 22:09:34
阅读次数:
192
CPU的工作原理 要想管理CPU,就要先学会如何使用CPU。我们先从一个程序的执行来看看CPU是如何工作的。 如果我们想要执行上面的一个程序,首先我们需要把该程序放到内存中,然后给PC寄存器设置成存放该程序的内存首地址,比如把PC设置成50,CPU通过地址总线找到地址为50的内存,取出第一条指令并执 ...
分类:
其他好文 时间:
2018-04-27 13:53:00
阅读次数:
104
笔者在开发某软件过程中遇到这样一个问题,前级模块传给我二进制数据,输入参数为 char* buffer和 int length,buffer是数据的首地址,length表示这批数据的长度。数据的特点是:长度不定,类型不定,由第一个字节(buffer[0])标识该数据的类型,共有256(28 )种可能 ...
分类:
编程语言 时间:
2018-04-27 13:33:26
阅读次数:
195