请教delphi中的内存错误(100分)

  • 主题发起人 niejing81
  • 开始时间
N

niejing81

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序代码如下
{*随机生成初始可行解程序开始*}
procedure RandomInitial_FS(n: integer;var s2:solution_Rec);
var
a:array of integer;
m,u: integer;
sum_d:double;
begin
setlength(a,n);
for m:=low(a) to high(a)do
a[m]:=m+1;
Randomline(a,0,0);{*生成客户点的随机序列*}
m:=0;
u:=1;
s2.sum_k:=0;
s2.route[0]:=0;
////这里开始出现问题
repeat
sum_d:=0;
while (m<length(a)) AND (sum_d+d[a[m]]<c)do
begin
s2.route:=a[m];
sum_d:=sum_d+d[a[m]];
s2.sum_cost:=costmatrix[s2.route,s2.route[u-1]]+s2.sum_cost;
inc(m);
inc(u);
end;
s2.route:=0;
inc(u);
s2.sum_k:=s2.sum_k+1;
until m>high(a);
end;
{*随机生成初始可行解程序完*}
s2的纪录为其中solution_Rec = Record
route : array of integer;
{*解路径,由表示车场的0和表示客户点自然数组成的序列*} 这里的数组长我setlength(*,50)
sum_ec :do
uble;
{*超出运载能力C的部分的总和*}
sum_cost :do
uble;
{*总路程花费,这里仅指路程总长度*}
sum_k : integer;
{*总车辆数*}

这个过程运行到repeat时不知道为什么就出现最后的m是124500左右的一个很大的数,
按道理应该是50才对啊
请帮忙看看有什么问题,其他的没提到的数组是全局变量,我看了没有问题
 

Similar threads

S
回复
0
查看
789
SUNSTONE的Delphi笔记
S
S
回复
0
查看
792
SUNSTONE的Delphi笔记
S
顶部