社区
Delphi
帖子详情
原来声明静态数组不占用内存呀
fj218
2003-12-29 01:11:20
比如
var
a:array [1..10000] of array [1..10000] of int64;
声明后居然不占用内存,而改用动态内存,就会占用。
另外声明一个最大的静态数组该如何写。是不是这样
var
a:array [1..Maxint div 2-1]
...全文
253
14
打赏
收藏
原来声明静态数组不占用内存呀
比如 var a:array [1..10000] of array [1..10000] of int64; 声明后居然不占用内存,而改用动态内存,就会占用。 另外声明一个最大的静态数组该如何写。是不是这样 var a:array [1..Maxint div 2-1]
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
搬运工木木
2004-01-04
打赏
举报
回复
倒。。。。看书去吧,看一看静态变量和动态变量在内存中是怎么样分布的
mxk19791116
2003-12-29
打赏
举报
回复
呵呵
fj218
2003-12-29
打赏
举报
回复
To: qiume(杜克) 我真不知你测试过没有。
我就是这样测试的,内存一点也没变,不信你试。
47522341
2003-12-29
打赏
举报
回复
楼主是放分贴就早说吗;^_^
qiume
2003-12-29
打赏
举报
回复
肯定占用内存,你可以这样测试:
procedure TForm1.Button1Click(Sender: TObject);
var
a:array [1..10000] of array [1..10000] of int64;
begin
end;
//
1, 打开任务管理器
2,运行你的程序(注意看你的程序占了多少内存)
3,按下Button1,再看任务管理器
4,你发现内存涨了!!!
fj218
2003-12-29
打赏
举报
回复
不信,大家可以在程序中声明一个比较大的静态动态数组,然后打开windows任务管理器察看内存变化,运行后没有任何改变。而声明为动态数组,执行setlength后,内存就会减少。我估计静态变量是赋了值后才占用内存。
抱朴守拙
2003-12-29
打赏
举报
回复
肯定占内存的。
jackieji
2003-12-29
打赏
举报
回复
8可能地,没内存咋运行涅?!
静态声明,是在运行之前就分配好到数据区(内存),他的生存期与整个程序相同;
而动态声明,随时可以释放掉的。
noproblem12
2003-12-29
打赏
举报
回复
不可能不占内存的
hch_45
2003-12-29
打赏
举报
回复
在var中声明的变量是在栈中分配的,这由编译器对其管理而不是没有分配内存。
fj218
2003-12-29
打赏
举报
回复
我已测试过多遍,静态数组声明不占用内存,赋值后才占用,更令人惊讶的是即使是局部声明,静态数组一旦占用内存就不会释放,直到程序退出后才释放。而动态数组可以通过置nil可以释放内存。
delphipan
2003-12-29
打赏
举报
回复
搞不懂
jxc163
2003-12-29
打赏
举报
回复
?
xinghf
2003-12-29
打赏
举报
回复
不可能
静态
数组
,全局
数组
,局部
数组
的初始化区别,局部
数组
属于局部变量,未初始化是随机数,如果局部
数组
太大就发生堆栈溢出
定义
数组
后,未初始化 #define LEN1 5 static int array_static_glogal[LEN1];//定义
静态
全局
数组
,未初始化
数组
成员 int array_glogal[LEN1]; //定义全局
数组
,但未初始化
数组
成员 int main() { char key = 6; switch(key) { case 6: { int i = 0; int arr...
5、
数组
作业
数组
作业 一、填空题 1.
数组
会在
内存
中开辟一块________的空间,每个空间相当于之前的一个变量,称为
数组
的元素。
数组
的长度一经确定,就无法再改变。 2.要获取一个
数组
的长度,可以通过_______属性来获取,但获取的只是为
数组
分配的空间的数量,而不是
数组
中实际已经存放的元素的个数。 3.__仅仅是给出了
数组
名字和元素的数据类型,要想真正的使用
数组
还必须使用new关键字为它分配
内存
空间。 4.创建
数组
后,系统会给每一个
数组
元素一个默认的值,如String类型元素的默认值是 __。 5.在Java中有二维
java
数组
基本概念
数组
动态初始化
数组
是引用数据类型,有
内存
分配问题。
数组
动态初始化(
声明
并开辟
数组
):
数组
类型[]
数组
名称 = new
数组
类型[长度]; int[] data = new int[5]; a.
数组
通过下标索引来取得元素,默认从0开始。
数组
下标超出
数组
长度,抱一个
数组
越界异常(运行时异常:"java.lang.ArrayIndexOutOfBoundsException) b.
数组
中每个...
牛客刷题笔记--(
数组
专项练习1-77)
1 下面哪项是
数组
优于链表的特点? D 方便删除 方便插入 长度可变 存储空间小 1:
数组
内存
空间少比链表少 2:
数组
支持随机访问,链表不具有随机访问的特性 3:插入和删除是链表优于
数组
,
数组
需要移动被删除或者插入位置之后的元素 https://blog.csdn.net/u014082714/article/details/44259029 D 链表要保存指向下个节点的指针,
占用
空间比
数组
更大 2 在C++中,以下定义和初始化的两
数组
a1和a2,那么下列说法正确的是( D)。 a1和a2完全相同
Unity3D
占用
内存
太大的解决方法
最近网友通过网站搜索Unity3D在手机及其他平台下
占用
内存
太大. 这里写下关于Unity3D对于
内存
的管理与优化. Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大。 Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时
Delphi
5,930
社区成员
262,943
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章