首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 15 毫秒
1.
指针指针是C语言中的一个重要概念,指针类型数据在C语言程序中的使用十分普遍。C语言区别于其它程序设计语言的主要特点就是处理指针时所表现出的能力和灵活性。正确地使用指针类型数据,可以有效地表示复杂的数据结构,直接处理内存地址,而且可以更为有效合理地使用数组。一、指针与地址计算机程序的指令、常量和变量等都要存放在以字节为单位的内存单元中,内存的每个字节都具有一个唯一的编号,这个编号就是存储单元的地址。各个存储单元中所存放的数据,称为该单元的内容。计算机在执行任何一  相似文献   

2.
常铁原  刘娜  陈文军 《计算机工程》2007,33(9):82-83,86
在μC/OSII中,当应用任务在申请到的内存块中产生了非法指针,并且指针地址指向了空闲内存块头结构区时(前几个字节),空闲链表将会被破坏。为解决这一隐患,将控制信息与用户空间独立存放。该文通过扩展内存块定位字节至16位,得到一种能够区分1 024个不同内存块的一级内存管理算法。  相似文献   

3.
在μC/OSⅡ中,当应用任务在申请到的内存块中产生了非法指针,并且指针地址指向了空闲内存块头结构区时(前几个字节),空闲链表将会被破坏.为解决这一隐患,将控制信息与用户空间独立存放.该文通过扩展内存块定位字节至16位,得到一种能够区分1 024个不同内存块的一级内存管理算法.  相似文献   

4.
林而立  卢子明 《电脑学习》1994,(4):30-31,47
1剖析内存控制块是在内存区域中,由若干16字节长的存储器链接形成的不连续区域,每一个16字节长的控制块控制一段内存区域的使用,这个控制块位于它所控制的内存区域之前,因此,内存控制块又叫区域头(AREANHEADERS)DOS系统以链接的方式分配内存,链接的过程可以从内存控制块中的有关信息看出来。16字节的一个内存控制块,其前5字节的意义如下:0字节:是一个登记项,若本控制区域是链中的一个区域,则为4D;若本控制区域是链中的最后一个区域,则为SA1-2字节:若本区域为空,则为0;若为系统区,则为8;若已分配给程序,则为该…  相似文献   

5.
指针是C语言的精髓.灵活正确的使用指针可以使程序得到优化.巧妙的利用指针又可以达到特殊的目的.本文利用字符型的指针指向了其他类型的变量,以读取变量所占内存的每个字节的内容.由此验证数据在内存中的存储方式.  相似文献   

6.
在DOS系统中,内存分配控制链是由一组链接在一起的控制块(又称区域头)所构成。DOS管理内存以节为最小分配单位,一节是16字节,一个内存控制块描述了本次分配所包含的节数及指向下一个分配块的链指针。  相似文献   

7.
C语言指针探讨   总被引:1,自引:0,他引:1  
指针是C语言中的一个重要概念,也是C语言的一个重要特色。正确而灵活地运用指针,可以有效地表示复杂的数据结构;能动态分配内存;能方便地使用字符串;有效而方便地使用数组;在调用函数时能得到多于1个的值;能直接处理内存等。但同时,指针的概念也难以理解,使用比较灵活的特点给程序设计者的学习和应用带来困难。本文结合例题探讨指针问题。一、指针的概念如果在程序中定义了一个变量,在编译时就会给这个变量分配一定长度的内存空间。内存区的每一个内存单元都有一个地址,用来标识内存单元,通过地址对所标识的单元存放数据。给变…  相似文献   

8.
第十话 初识地址与指针 VB与VC++、Delphi之间最大的不同之一,就是后两者都可以使用指针进行运算,而VB为了安全着想,被去除了这一功能,虽然因此避免了使用指针所带来的危险性,但却造成使用上的许多不便,特别是在速度上难以提高。API给VB带来了一些改变,它的介入使VB得到很大程度的扩展,包括带来了指针。其实指针在Windows中是一个32位变量(占用4个字节的内存),在VB中由于没有指针类型变量,所以存放指针应使用长型(长型也是32位的变量)。  相似文献   

9.
陈凯明  宋学瑞 《微机发展》2005,15(5):137-138,141
研究了μC/OSII的内存管理,发现当对一个申请到的内存块进行越界写操作或产生了指向空闲内存块指针区(头几个字节)非法指针时可能会破坏它指向下一个空闲内存块的指针,这样,空闲内存块链表就会被破坏。出于安全性要求,必须将控制信息与用户使用的空闲内存块分开,内存块的控制信息属于系统数据,必须对其进行保护。利用μC/OSII的就绪表(Ready List)中任务的调入和删除原理,构造一个内存管理表,实现内存块的分配和释放。由此,μC/ISII在内存管理中存在的安全性问题得到了解决。  相似文献   

10.
本人经查阅有关资料,摸索出了一种利用DOS的保留中断INT21H的52H号功能调用来实现TSR程序一次性驻留内存的方法,其原理如下:INT21H的52H号中断功能调用主要是确定内存控制链中第一个内存控制块MCB的具体地址,根据第一个MCB的地址,利用公式可计算出下一个MCB的具体地址。下一个内存控制块MCB段地址二本内存控制块MCB段地址+本内存分配块MAB大小+1)。其调用格式为:MOVah,52HINT21H该操作的返回值为:ES:[BX-2]指向第一个MCB段地址,其偏移值为0。该方法是通过在TSR程序的内存分配块MAB的100H(即内存驻留…  相似文献   

11.
C语言在实际编程过程中,当一个数据结构大于64K字节时会发生“折回“和死锁现象。利用特大指针,使得附加段空间为一用户控制下的动态存储区域,可以正确地处理大于64K字节的数据结构,从而得高内存的使用效率。  相似文献   

12.
研究了μC/OSⅡ的内存管理,发现当对一个申请到的内存块进行越界写操作或产生了指向空闲内存块指针区(头几个字节)非法指针时可能会破坏它指向下一个空闲内存块的指针,这样,空闲内存块链表就会被破坏.出于安全性要求,必须将控制信息与用户使用的空闲内存块分开,内存块的控制信息属于系统数据,必须对其进行保护.利用μC/OSⅡ的就绪表(Ready List)中任务的调入和删除原理,构造一个内存管理表,实现内存块的分配和释放.由此,μC/OSⅡ在内存管理中存在的安全性问题得到了解决.  相似文献   

13.
μC/OSⅡ内存管理的一种改进方法   总被引:3,自引:0,他引:3  
陈凯明  宋学瑞 《微机发展》2005,15(5):137-138
研究了μC/OSⅡ的内存管理,发现当对一个申请到的内存块进行越界写操作或产生了指向空闲内存块指针区(头几个字节)非法指针时可能会破坏它指向下一个空闲内存块的指针,这样,空闲内存块链表就会被破坏.出于安全性要求,必须将控制信息与用户使用的空闲内存块分开,内存块的控制信息属于系统数据,必须对其进行保护.利用μC/OSⅡ的就绪表(Ready List)中任务的调入和删除原理,构造一个内存管理表,实现内存块的分配和释放.由此,μC/OSⅡ在内存管理中存在的安全性问题得到了解决.  相似文献   

14.
在64位机器上,存储器一般以64位的虚地址进行访问,所有的指针变量也以8字节进行存储和使用。介绍一种在64位机器上采取32位地址进行计算和访存的编译优化方法,这种优化的目的是针对64位机器上大量使用指针数据的课题,采取32位寻址可以减少指针变量占用内存和cache空间,从而大大提高了该类课题的运行效率。  相似文献   

15.
1 Java内存划分情况 计算机中程序运行都是在内存中进行的,Java程序是交给JVM自动管理,内存区域是指JVM的内存,大致可划分为四个部分:(1) Java栈Java栈也称作虚拟机栈,是Java方法执行的内存模型.Java栈中存放的是一个个的栈帧,每个栈帧对应一个被调用的方法,在栈帧中包括局部变量表、操作数栈、指向当前方法所属类的运行时常量池的引用、方法返回地址和一些额外的附加信息.(2)本地方法栈本地方法栈以帧的形式存放本地方法的调用状态,包括方法调用的参数、局部变量、中间结果等.方法都是以方法帧的形式存放在方法区.(3) Java堆Java堆是一个运行时的数据区,用来存储数据的单元,堆中存放通过new关键字新建的对象和数组.在JVM中只有一个堆,可以在运行时动态地分配内存大小,存取速度较慢.在堆中声明的对象不能直接访问,必须通过在栈中声明的引用来调用.引用变量存储的是指向堆中的数组或对象的地址,即指针.(4)方法区方法区是被线程共享的区域.在方法区中,存储了每个类的信息,包括类的名称、方法信息、字段信息、静态变量、常量以及编译器编译后的代码等.  相似文献   

16.
适用考试:计算机等级考试二级C语言笔试部分C语言中的指针是一个非常重要的概念,也是C语言的精华所在,由于C中利用指针概念统一地处理变量的地址、数组下标,因而提高了C语言的描述能力,并可获得很高的编译质量。可以这样说,学好C语言的关键就是指针。一、指针的基本知识1.指针的作用要想学好指针首先要对计算机存储体系有一定的了解。我们知道,计算机中有存储器这一部件,其中以字节为单位划分成了很多空间,这些空间是存放数据的基本场所,变量数据一般也是存放在这些内存空间中的。对这些空间的使用系统是通过一个地址来进行的…  相似文献   

17.
本文介绍一种C语言和FoxBASE按照一定的规律通过对MEM文件的读写,即可实现它们之间快速的任何类型的参数传递的方法。 FoxBASE的内存变量MEM文件是由多个变量组成的顺序文件,系统可通过顺序读写对变量进行存取。MEM文件中每个变量都由两部分组成:变量说明部分和变量内容部分。 (1)变量说明部分占32个字节 1~11字节为变量名;第12字节为变量类型(C,N,D和L,分别对应为43,4E,44和4C);第17字节为变量内容的实际长度,分别对应于:字符型变量长度为字符串本身长度加1,  相似文献   

18.
缓冲区溢出静态分析中的指针分析算法   总被引:2,自引:0,他引:2  
张明军  罗军 《计算机工程》2005,31(18):41-43,107
提出一个扩展的流不敏感指针分析算法,主要用于缓冲区溢出静态分析,该算法把程序控制流图(CFG)转换为静态单指派(SSA),然后循环调用一个流不敏感指针分析,生成每个指针变量精确的指向集,更新指针变量的定义-引用链中约束信息.在LLVM编译系统下实现了该算法,实验表明其精度和流敏感的指针分析算法相当,但效率高于流敏感指针分析算法,时间复杂度低于流敏感指针分析算法.  相似文献   

19.
BASIC和汇编语言之间的接口问题,除了可以利用call命令实现外,还可以用USR命令实现.关于如何使用call命令实现接口技术,曾有过不少讨论文章,但对如何使用USR命令实现接口技术,则尚未见报导. 在用call命令实现接口时,要求用户在编写汇编程序时,要设置好入口指针和保存好返回地址,稍不注意就无法成功.用USR命令实现接口时则无这些要求,这使得用户在编制汇编程序时方便多了.call命令和USR命令在实现接口时为什么有这种差别呢?原因是:BASIC言语开发者专门使用了内存的一个区域(称为FAC),作为BASIC与汇编程序之间通过USR语句来回传送变量的区域.这个FAC区域实际上就是一段8字节的内存,如图1所示.  相似文献   

20.
廖雷 《电脑学习》1997,(3):41-42
C语言是使用最广泛的程序设计语言之一,但就其学习难度来说,也是比较大的,其中的指针既是C语言的重点,又是C语言的难点,能做到通俗、全面、准确地讲述C语言指针概念的书籍较为少见,因此,初学者对C语言指针的理解往往显得模糊。本文根据作者在C语言教学和使用方面的多年经验,讨论了一般教科书中讲解不够清楚或不够准确的几个问题,希望对读者进~步用好C语言指针有所帮助。互指针就是地址理解C语言指针的基础就是牢固树立指针就是地址的概念。具体的说,指针常量就是地址常量,指针变量就是地址变量。先来看指针常量:()若i是…  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号