我的代码有效,但一直给我访问冲突错误."模块中地址00440690B的访问冲突.读取地址01F62C42." 怎么了?我怎样才能让它发挥作用?第二个循环什么都不做.请帮忙!
Var
num1, num2, k : Integer;
LL : string;
begin
LL := ' ';
num1 := 4;
num2 := 4;
for k := 1 to 7 do
begin
LL[num1] := '*';
LL[num2] := '*';
redt.Lines.Add(LL);
num1 := num1 +1;
num2 := num2 -1;
end;
for k := 1 to 3 do
redt.Lines.Add(' * ');
end;
Run Code Online (Sandbox Code Playgroud)
Dav*_*nan 11
我的代码有效.
不,不是的.您正在访问LL那些超出范围的元素.在第一个循环的最后一次迭代中,num1有值10,并且num2有值-2.当用作索引时,这两个都是越界的LL.为有效索引LL是1到7.所以我猜第一个循环应该运行1到4.
如果要在编译器选项中启用范围检查,编译器将能够告诉您这一点.我不能强调使用范围检查的重要性.使用它,让编译器找到你的缺陷.
| 归档时间: |
|
| 查看次数: |
461 次 |
| 最近记录: |