zoukankan      html  css  js  c++  java
  • 複製內存

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

  • 相关阅读:
    面向对象--封装
    面向对象--多态
    面向对象编程
    类的特殊成员
    新式类 VS 经典类
    python类的继承
    python析构函数
    类的公有属性
    (转)JAVA AJAX教程第二章-JAVASCRIPT基础知识
    (转)JAVA AJAX教程第一章-初始AJAX
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940752.html
Copyright © 2011-2022 走看看