社区
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]
...全文
233
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
打赏
举报
回复
不可能
《c语言深度解析》第5、6章 制作c库与c标准库、
数组
与字符串
课程内容:第5章:库的原理、
静态
库与动态库、制作
静态
库和动态库、c库函数与OS API的关系、c标准库、c标准库的基本组成。第6章:一维
数组
、二维
数组
、三维
数组
、使用malloc开辟多维
数组
、字符串、指针变量/
数组
/字符串与sizeof、main函数的argc、argv。
静态
数组
,全局
数组
,局部
数组
的初始化区别,局部
数组
属于局部变量,未初始化是随机数,如果局部
数组
太大就发生堆栈溢出
定义
数组
后,未初始化 #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...
C++ vector 使用详解
目录 介绍两个关键词 元素访问 迭代器 空间 修改操作 简介 C++的vector本质上是一个动态
数组
,它的元素是连续存储的,这意味着不仅可以通过迭代器访问元素,还可以使用指向元素的常规指针来对其进行访问。还可以将指向vector元素的指针传递给任何需要指向
数组
元素的指针的函数。 vector的存储是自动处理的,可以根据需要进行扩展和收缩。vector通常比
静态
数组
占用
更多的空间,...
5、
数组
作业
数组
作业 一、填空题 1.
数组
会在
内存
中开辟一块________的空间,每个空间相当于之前的一个变量,称为
数组
的元素。
数组
的长度一经确定,就无法再改变。 2.要获取一个
数组
的长度,可以通过_______属性来获取,但获取的只是为
数组
分配的空间的数量,而不是
数组
中实际已经存放的元素的个数。 3.__仅仅是给出了
数组
名字和元素的数据类型,要想真正的使用
数组
还必须使用new关键字为它分配
内存
空间。 4.创建
数组
后,系统会给每一个
数组
元素一个默认的值,如String类型元素的默认值是 __。 5.在Java中有二维
java
数组
基本概念
数组
动态初始化
数组
是引用数据类型,有
内存
分配问题。
数组
动态初始化(
声明
并开辟
数组
):
数组
类型[]
数组
名称 = new
数组
类型[长度]; int[] data = new int[5]; a.
数组
通过下标索引来取得元素,默认从0开始。
数组
下标超出
数组
长度,抱一个
数组
越界异常(运行时异常:"java.lang.ArrayIndexOutOfBoundsException) b.
数组
中每个...
Delphi
5,388
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章