正确的代码:
s := 'A B';
len:= length(s);
setlength(ary,length(s));
copymemory(@ary[0],@s[1],length(s));
ShowMessage(ary[0]);
copymemory(@ary[1],@s[2],length(s));
ShowMessage(ary[1]);
copymemory(@ary[2],@s[3],length(s));
ShowMessage(ary[2]);
for i:=0 to len-1 do
begin
Str:=Str+ary[i];
end;
ShowMessage(Str);
出错的代码:
s := 'A B';
len:= length(s);
setlength(ary,length(s));
copymemory(@ary[0],@s[1],length(s));
//ShowMessage(ary[0]);
copymemory(@ary[1],@s[2],length(s));
//ShowMessage(ary[1]);
copymemory(@ary[2],@s[3],length(s));
//ShowMessage(ary[2]);
for i:=0 to len-1 do
begin
Str:=Str+ary[i];
end;
ShowMessage(Str);
两者的唯一区别就是一个有ShowMessage一个没有,有ShowMessage的没出错,另一个出错,出错信息是Invalid Pointer Operation。请问是什么原因?
s := 'A B';
len:= length(s);
setlength(ary,length(s));
copymemory(@ary[0],@s[1],length(s));
ShowMessage(ary[0]);
copymemory(@ary[1],@s[2],length(s));
ShowMessage(ary[1]);
copymemory(@ary[2],@s[3],length(s));
ShowMessage(ary[2]);
for i:=0 to len-1 do
begin
Str:=Str+ary[i];
end;
ShowMessage(Str);
出错的代码:
s := 'A B';
len:= length(s);
setlength(ary,length(s));
copymemory(@ary[0],@s[1],length(s));
//ShowMessage(ary[0]);
copymemory(@ary[1],@s[2],length(s));
//ShowMessage(ary[1]);
copymemory(@ary[2],@s[3],length(s));
//ShowMessage(ary[2]);
for i:=0 to len-1 do
begin
Str:=Str+ary[i];
end;
ShowMessage(Str);
两者的唯一区别就是一个有ShowMessage一个没有,有ShowMessage的没出错,另一个出错,出错信息是Invalid Pointer Operation。请问是什么原因?
s := 'A B';
len:= length(s);
setlength(ary,length(s));
copymemory(@ary[0],@s[1],length(s));
ShowMessage(ary[0]);
copymemory(@ary[1],@s[2],length(s));
ShowMessage(ary[1]);
copymemory(@ary[2],@s[3],length(s));
ShowMessage(ary[2]);
for i:=0 to len-1 do
begin
Str:=Str+ary[i];
end;
ShowMessage(Str);
出错的代码:
s := 'A B';
len:= length(s);
setlength(ary,length(s));
copymemory(@ary[0],@s[1],length(s));
//ShowMessage(ary[0]);
copymemory(@ary[1],@s[2],length(s));
//ShowMessage(ary[1]);
copymemory(@ary[2],@s[3],length(s));
//ShowMessage(ary[2]);
for i:=0 to len-1 do
begin
Str:=Str+ary[i];
end;
ShowMessage(Str);
两者的唯一区别就是一个有ShowMessage一个没有,有ShowMessage的没出错,另一个出错,出错信息是Invalid Pointer Operation。请问是什么问题?