美文网首页
什么是句柄?

什么是句柄?

作者: wang_1990 | 来源:发表于2020-08-17 23:36 被阅读0次

简单说,Handle就是指针的指针。

在c语言里面,假如你通过malloc申请一段内存空间,heap给你一个指针直接指到你可用内存的起始位置。在你释放之前操作系统无法将这段内存移动。

至于为啥要移动,因为你在程序各处调用大小不一的malloc会产生内存碎片。碎片多了总之不好,最好把碎片移到一块,这样就又有大块的内存空间可以malloc了。这个过程叫defragmentation。跟windows上硬盘碎片整理一样。

malloc直接给你指针的话就不方便heap管理内存。因为只要你不free,它就不敢动那块内存。但是假如给你指针的指针,增加一次跳转。动态内存管理内部维护一个表,第一次对指针dereference进入这个表,再来一次才到你可用的内存块。这样动态内存管理就可以把真正的那段内存定期合并起来,然后只要调整那个表指向新的地址。

相关文章

  • 什么是句柄?

    简单说,Handle就是指针的指针。 在c语言里面,假如你通过malloc申请一段内存空间,heap给你一个指针直...

  • java

    句柄 参考 java句柄 什么是句柄句柄(Handle)来标示应用程序中不同的对象和同类中不同的实例注意:句柄有人...

  • 句柄问题分析

    什么是句柄 句柄就是一个对象的标识符,只要获得对象的句柄,我们就可以对对象进行任意的操作,包括窗口,按钮,图标,输...

  • 06.Perl -- 文件操作

    Perl 句柄 句柄的定义 Perl通过句柄和“外面”的世界连接 句柄是一个顺序号,对于打开的文件是唯一的识别依据...

  • Perl语言学习(八)Perl文件操作

    八、Perl文件操作 1、Perl句柄 句柄的定义Perl通过句柄和“外面”的世界连接句柄是一个顺序号,对于打开的...

  • 每天学一点Thinking in java: 2 万物皆为对象

    用句柄操纵对象 虽说万物皆对象,但你操作的实际是指向对象的句柄。试着将对象想象成电视,句柄想象成句柄。只要你手中拿...

  • 寻找Windows系统文件簇号

    句柄: 在windows中,句柄是和对象一一对应的32位无符号整数值。对象可以映射到唯一的句柄,句柄也可以映射到唯...

  • PHPER必了解——PHP资源句柄

    什么是句柄? php资源句柄就像是我们说的锅把; 比如:打开一个资源,这个资源特别大,可能是个好几G的文件,PHP...

  • MFC中句柄、指针、ID之间的关联

    MFC中句柄、指针、ID之间的关联 win32直接操作的是句柄HANDLE。每一个句柄就相应windows窗体,而...

  • 句柄表和继承

    句柄表和继承 句柄代表着备操作的对象 句柄的本质(handler) 句柄表可以看做一个非常大的机构体数组句柄表的结...

网友评论

      本文标题:什么是句柄?

      本文链接:https://www.haomeiwen.com/subject/mggcjktx.html