在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
全局的非指针类型,声明后自动分配内存,并初始化值 局部的非指针类型,声明后自动分配内存,不初始化值,值不确定(取决与别的程序对这块内存的操作) 全局的指针类型,声明后不自动分配内存,值为nil 局部的指针类型,声明后不自动分配内存,但会随机指向一个地址,所以地址不为nil 应用程序可用的内存区分三类:全局变量区(存放全局变量)、栈(Stack)、堆(Heap)。应用程序开始时所有的全局变量的内存都被分配到全局变量区,局部变量分配到应用程序栈,应用程序结束时分配到栈中的变量内存会被栈管理器自动释放,堆上的变量内存必须手工释放。 堆(内存) 堆是应用程序可用的三种内存区之一, 其它两种分别是全局内存区(存放全程变量) 和栈。与堆相反,全程变量内存在程序启动时就分配,然后一直保留到程序终止才释放;栈的内容请详见术语表。 Delphi 使用堆为对象、字符串、动态数组及特殊的动态内存请求(GetMem)内存分配。 Windows 应用程序的地址空间最大允许有 2 GigaByte, 其中大部分能被堆使用。 栈(内存) 栈是应用程序可用的三种内存区之一,其它两种分别是全局内存区和堆。堆的内容请详见术语表。 Delphi 使用栈存放例程参数及其返回值(除非你使用Delphi缺省的 register 调用协定)、局部例程变量、Windows API 函数调用等等。 Windows 应用程序可以预留大量的栈内存,在 Delphi 中你可以通过工程选项的 linker 页设置, 不过一般采用缺省设置就可以了。 如果你收到一个栈溢出错误信息,这可能是因为你的函数进入了死循环自调用,而不是栈空间太小。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论