Delphi 的内存操作函数(5): 复制内存


本文整理自网络,侵删。

 Delphi 的内存操作函数(5): 复制内存

MoveMemory、CopyMemory 的功能是一模一样的, 都是复制内存, 都是调用 Move 过程;

MoveMemory、CopyMemory 操作指针; Move 操作实体.

还要注意, 它们的参数位置不一样!
--------------------------------------------------------------------------------

举例:
--------------------------------------------------------------------------------

{例1}
var
buf1,buf2: array[0..9] of AnsiChar;
begin
buf1 := '0123456789';
buf2 := 'abcdefghij';

Move(buf2[2], buf1[4], 5);

ShowMessage(buf1); {0123cdefg9}
ShowMessage(buf2); {abcdefghij}
end;

{例2}
var
buf1,buf2: array[0..9] of AnsiChar;
begin
buf1 := '0123456789';
buf2 := 'abcdefghij';

CopyMemory(@buf2[2], @buf1[4], 5);

ShowMessage(buf1); {0123456789}
ShowMessage(buf2); {ab45678hij}
end;

{例3}
var
s1,s2: TStringStream; {两个字符串流}
begin
s1 := TStringStream.Create;
s2 := TStringStream.Create;

{向第一个字符串流写入}
s1.WriteString('万一的 Delphi 博客');
ShowMessage(s1.DataString); {万一的 Delphi 博客}

{设置第二个字符串流的大小}
s2.SetSize(6);
{从第一个流复制到第二个流}
CopyMemory(s2.Memory, s1.Memory, s2.Size);
ShowMessage(s2.DataString); {万一的}

s1.Free;
s2.Free;
end;
--------------------------------------------------------------------------------

这里仅仅是为了测试, 如果真的使用 TMemoryStream、TStringStream 等流类, 它们自身提供的复制操作更方便.

相关阅读 >>

Delphi idhttp数据自动编码

Delphi 获取image.picture.data的数据

Delphi删除文件

[Delphi] 计算目录大小的函数,获得目录文件列表,计算文件的大小

Delphi idhttp封装得post get函数

Delphi实现文件的拖放功能

Delphi 判断目录是否有写入权限

Delphi 10.3 开发app 在android手机上获取imei

Delphi 调用驱动

Delphi 泛型排序器 tcomparer

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...