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 实现放大效果

Delphi datetimetogmt gmt时间与tdatetime转换

Delphi idhttp基本使用方法

Delphi xe android 调试错误:connection closed gracefully

Delphi 访问https图片

Delphi实现双击左ctrl键调用记事本

Delphi 计算程序运行时间

Delphi检测鼠标指针的改变(全局)

Delphi stringgrid常用属性和常用操作

Delphi 结束360safe和360保险箱进程

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



打赏

取消

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

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

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

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

评论

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