首页 > 代码库 > 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 的内存操作函数(5): 复制内存
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。