Delphi Move 用法

function LogInDeviceVar(DeviceVarName: PChar; DeviceVar: PChar) : Integer;
var
Str : String;
I : Integer;
begin
Str := '';
For I := 0 to 199999 do
begin
Str := Str + '1';
end;
Move(@Str, DeviceVar^, Length(Str) + 1);
result := 0;
end;
为什么字符串Str长度小的时候可以,长度大了不可以呢?
最新回答
百般娇

2024-10-15 12:00:58

GetMem(DeviceVar, Length(Str) + 1); //加上这一句,给字符指针分配内存大小
Move(Str[1], DeviceVar^, Length(Str) + 1);//
ShowMessage(DeviceVar);

FreeMem(DeviceVar);//释放
烟酉

2024-10-15 12:01:59

delphi里面 string 类型可以有2G这么大,你的Str难道会超过吗?