博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Delphi 的内存操作函数(5): 复制内存
阅读量:7087 次
发布时间:2019-06-28

本文共 965 字,大约阅读时间需要 3 分钟。

  hot3.png

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 等流类, 它们自身提供的复制操作更方便.

转载于:https://my.oschina.net/hermer/blog/320623

你可能感兴趣的文章
Line belt
查看>>
captive portal
查看>>
Let's encrypt申请泛域名证书以及报错处理
查看>>
centos6.5 安装jdk7和tomcat7
查看>>
linux 的diff 命令
查看>>
蜘蛛纸牌存档文件,修改分数
查看>>
Windows系统环境下创建mysql主从数据库方法(双向主从复制)
查看>>
apache shiro的工作流程分析
查看>>
bzoj1878[SDOI2009]HH的项链
查看>>
在vue2.0中使用sass
查看>>
那么 Appium 到底是怎么工作的呢?
查看>>
nth-Child用法
查看>>
关于setTimeout的妙用前端函数节流
查看>>
【5】标题上的小logo
查看>>
jvm内存设置及总结
查看>>
mysql基本数据类型(mysql学习笔记三)
查看>>
mongo数据删除和游标
查看>>
[原]Unity3D深入浅出 - 认识开发环境中的Layers面板
查看>>
【leetcode】719. Find K-th Smallest Pair Distance
查看>>
jmeter使用csv传参进行并发测试验证
查看>>