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.