zoukankan      html  css  js  c++  java
  • Delphi动态分配指针长度

    要点:

    1.GetMem函数是分配内存,第二个参数为分配内存的字节长度

    2.MyPoint1增加之后,如果需要释放MyPoint1数组,就必须在之前定义MyPoint2保存MyPoint1,用来FreeMem

    3.指针释放之后,内存残留的数据,如果没有被其他地方修改,还是可以读出来的!

    program MyPoint;  //指针详解
    {$APPTYPE CONSOLE}
    uses
      SysUtils,windows,Generics.Collections ;
    
    {动态分配指针长度}
    procedure MyFunc4();
    var
      MyPoint1, MyPoint2 : ^integer;//2个指针
      I : integer;
    begin
      GetMem(MyPoint1, sizeof(integer) * 5); //MyPoint1分配5个interge的大小
      MyPoint2 := MyPoint1; //保留原始指针位置
      for I := 0 to 5 do //遍历
      begin
        MyPoint1^ := I;
        Writeln('我遍历的第:',I,'次指针内容为:',MyPoint1^);
        Inc(MyPoint1);    //自加1
      end;
      FreeMem(MyPoint2);//MyPoint2的作用就在于此,保存和释放MyPoint1开辟的空间
      Inc(MyPoint2);
      Inc(MyPoint2);  //自加2
      Writeln(MyPoint2^);//读出来的应该是内存残留的数据
    end;
    
    {main主函数}
    begin
     MyFunc4();
     Readln;//回车退出
    end.


     

  • 相关阅读:
    java自学
    java自学
    java自学
    java自学
    Interesting Finds: 2009 11.17 ~ 11.22
    Interesting Finds: 2009 10.09 ~10.13
    Interesting Finds: 2009 10.01 ~ 10.08
    Interesting Finds: 2009 10.14 ~ 10.21
    Interesting Finds: 2009 11.01 ~ 11.08
    Interesting Finds: 2009 10.25 ~ 10.31
  • 原文地址:https://www.cnblogs.com/GodPan/p/3390094.html
Copyright © 2011-2022 走看看