当我尝试将字符串从Lines
控件TMemo
传递到PChar
. 在例程结束时,数组中的最后一个字符串被复制。我能够在这个简单的代码中复制它:
procedure Test;
var
i: smallint;
arr: array of PAnsiChar;
strarr: array[0..1] of string;
begin
SetLength(arr, 2);
strarr[0] := 'abbb';
strarr[1] := 'baaa';
for i := 0 to Length(strarr) do
arr[i] := PAnsiChar(AnsiString(strarr[i]));
end;
但是,如果我逐步运行此过程,我可以看到arr[0] = 'abbb'
,在常规结束时,两个值arr[0]
都arr[1]
等于baaa
. 我想这与类型转换有关。
谁能看到有什么问题?