如何解决Range check error 错误

程晨c 2014-08-25 10:41:17


procedure TForm1.btn1Click(Sender: TObject);
var
i:int64;
x:array of int64;
intS:int64;
begin
i:=1000000000;
setlength(x,i); //此处报错
intS:=gettickcount;
Randomize;
i:=0;
while i<= high(x) do
begin
x[i]:=random(high(x)+1);
i:=i+1;
end;
intS:=gettickcount-ints;
lbl1.Caption:='用时'+inttostr(ints)+'毫秒';
end;



...全文
6624 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
缘中人 2014-08-26
  • 打赏
  • 举报
回复
跟内存大小有关
aniugee 2014-08-26
  • 打赏
  • 举报
回复
x:array of integer; 报错Range check Error x:array of smallint; 报错out of memory x:array of byte; 正常 个人理解,第一种可能是语法检查层面的错误 第二种是语法通过但分配内存时发现不足
武稀松 2014-08-25
  • 打赏
  • 举报
回复
1G个Int64也就是至少8G内存才够放. 如果你是32位操作系统至少操作系统给每个进程的内存只有2G或者3G(开了PAE模式) 如果是64位系统,你的物理内存也没这么大. 而你这里setlength报Range错主要是因为超出了动态数组的大小,动态数组32位系统最多是2G内存 neededSize := newLength*elSize;//32位系统下neededSize 是32位整数,你这个超出了最大数,就变成负数.后面那句就会抛异常. if neededSize div newLength <> elSize then Error(reRangeError);
程晨c 2014-08-25
  • 打赏
  • 举报
回复
引用 1 楼 wr960204 的回复:
1G个Int64也就是至少8G内存才够放. 如果你是32位操作系统至少操作系统给每个进程的内存只有2G或者3G(开了PAE模式) 如果是64位系统,你的物理内存也没这么大. 而你这里setlength报Range错主要是因为超出了动态数组的大小,动态数组32位系统最多是2G内存 neededSize := newLength*elSize;//32位系统下neededSize 是32位整数,你这个超出了最大数,就变成负数.后面那句就会抛异常. if neededSize div newLength <> elSize then Error(reRangeError);
x:array of int64; 报错Range check Error x:array of integer; 报错Range check Error x:array of smallint; 报错out of memory 同样是超出内存,为何前二者报 range check error 而后者报 out of memory
xiaoxian251 2014-08-25
  • 打赏
  • 举报
回复
setlength(x,i); i为Integer
内容概要:本文围绕《【卫星信号】模拟卫星信号传播研究(Matlab代码实现)》这一技术资源展开,系统介绍了利用Matlab进行卫星信号传播过程建模与仿真的方法。该资源聚焦于构建卫星信号在复杂空间环境中的传播模型,综合考虑自由空间路径损耗、大气吸收、多径效应、多普勒频移、电离层闪烁及噪声干扰等多种物理因素,通过Matlab编程实现信号传输特性的动态仿真与可视化分析,帮助研究人员深入掌握卫星通信信道的关键特性与建模流程。; 适合人群:具备Matlab编程能力和通信原理基础知识的高校研究生、科研机构研究人员及从事卫星通信、导航定位、遥感遥测等领域的工程技术人员,特别适用于需要完成相关课题仿真、毕业设计或项目开发的初级与中级科研人员。; 使用场景及目标:①用于教学与课程设计中加深对卫星信号传播机制的理解;②支撑卫星通信系统链路预算、接收机灵敏度分析与抗干扰算法设计;③服务于学术论文撰写、科研项目申报中的仿真验证环节,提供可复用的代码框架与建模思路。; 阅读建议:建议读者结合经典通信理论教材同步学习,重点剖析代码中关于信号调制、信道建模、噪声叠加与接收端解调等模块的实现逻辑,动手运行并调整轨道参数、频率、环境条件等变量,观察信号质量变化,从而深化对卫星信道动态行为的认知。

16,741

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧