var
i,j:integer;
tempstr:string;
Begin
For i:=0 to 100 do
begin
tempstr:='';
for j:=0 to Const1 do //Const1 是在其他单元中定义的常量值为64
tempstr:=tempstr+chrarray[j];
//CHRARRAY在其他单元的定义是:ARRAY [0..49] OF CHAR;
end;
end;
针对上面小程序发现两个问题:
1.调试时,用WATCH查看I值时,不允许查看;
2.为什么DELPHI不给出数组越界提示呢?
本人分析可能是DELPHI编译器的"优化"所致,可是关闭该选项后并没有什么变化?请问到底是怎么回事? 谢谢!
i,j:integer;
tempstr:string;
Begin
For i:=0 to 100 do
begin
tempstr:='';
for j:=0 to Const1 do //Const1 是在其他单元中定义的常量值为64
tempstr:=tempstr+chrarray[j];
//CHRARRAY在其他单元的定义是:ARRAY [0..49] OF CHAR;
end;
end;
针对上面小程序发现两个问题:
1.调试时,用WATCH查看I值时,不允许查看;
2.为什么DELPHI不给出数组越界提示呢?
本人分析可能是DELPHI编译器的"优化"所致,可是关闭该选项后并没有什么变化?请问到底是怎么回事? 谢谢!
解决方案 »
- 以下代码播放几个MP3文件时,为什么播放过的MP3文件不能再次进行播放,且总是播放最后一次播放的文件
- delphi2006中如何添加VCL控件
- 如何向WINODWS 98系统下的DOS窗口程序,模拟键盘输入信息,急急急! 在线等待
- 请delphi的大哥哥,大姐姐们帮帮我,如果在delphi中实现PB的下拉数据窗口效果
- 如何将二进制流转换成字符串?(在线)
- 我用ClientDataSet1连接的*.cds文件,离开Dephi环境怎么程序运行不了?
- 继续加分50,还是很简单.总共200分
- 如何确定一个控件的归属 除UP者外皆有分 答出问题开帖另加分
- b/s多层结构的傻瓜问题
- RichEdit的居中效果如何体现到一个字串中?
- 数据库开发用什么样的前台开发工具最好。
- 有两个问题不知道,请指教!!!
2、因为此时没有打开越界检查这个编译器指令。如果程序改为:
{$R+}
for i:=0 to 3 do
begin
tempstr:='';
for j:=0 to 64 do
tempstr:=tempstr+chrarray[j];
end;
{$R-}
你可以看到运行时越界异常了。
这两个问题都跟编译器的优化没有关系。—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————