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.

 

相关阅读 >>

Delphi bmp转换png

Delphi 如何判断一个exe文件是否运行

Delphi 处理以逗号分隔的长字符串

Delphi 取得dll所在目录

Delphi禁止webbrowser弹出窗口或者脚本错误

Delphi研究之驱动开发篇(四)--使用系统内存堆

Delphi使用tnethttpclient:重定向后如何给出最终的url?

Delphi-adoquery查询、插入、删除、修改

Delphi截取字符串

Delphi 判断字符串是否包含汉字

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...