码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-09-07 14:45:25      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   ar   div   sp   log   

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): 复制内存

标签:style   blog   http   color   使用   ar   div   sp   log   

原文地址:http://www.cnblogs.com/sonicit/p/3960386.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!