zoukankan      html  css  js  c++  java
  • 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 等流类, 它们自身提供的复制操作更方便.


    好的代码像粥一样,都是用时间熬出来的
  • 相关阅读:
    repair grub in Ubuntu
    DNS attack experiment
    新闻随感(摩托罗拉125亿被Google收购)
    成为C++高手必须要看的书
    nginx
    Nginx Pitfalls
    gcc/gdb
    python 删除文件
    Solve nginx Error 413 Request Entity Too Large
    Solve Nginx Error 413: Request Entity Too Large
  • 原文地址:https://www.cnblogs.com/jijm123/p/14212330.html
Copyright © 2011-2022 走看看