注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Mr.Right

不顾一切的去想,于是我们有了梦想。脚踏实地的去做,于是梦想成了现实。

 
 
 

日志

 
 
关于我

人生一年又一年,只要每年都有所积累,有所成长,都有那么一次自己认为满意的花开时刻就好。即使一时不顺,也要敞开胸怀。生命的荣枯并不是简单的重复,一时的得失不是成败的尺度。花开不是荣耀,而是一个美丽的结束,花谢也不是耻辱,而是一个低调的开始。

网易考拉推荐

Delphi中的GetMem和FreeMem对应C语言中的malloc和free  

2013-02-19 17:22:30|  分类: 编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Example code : A simple exampl of using GetMem and FreeMem
// Full Unit code.
// -----------------------------------------------------------
// You must store this code in a unit called Unit1 with a form
// called Form1 that has an OnCreate event called FormCreate.
 
unit Unit1;
 
interface
 
uses
  // The System unit does not need to be defined
  Forms, Dialogs;
 
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  end;
 
var
  
Form1: TForm1;
 
implementation
{$R *.dfm} // Include form definitions
 
procedure TForm1.FormCreate(Sender: TObject);

var
  charPtr  : PChar;

begin
  // Allocate storage for 4 characters
  GetMem(charPtr, 4 * SizeOf(Char));

  // Assign to these characters
  charPtr^ := 'A';
  Inc(charPtr);
  charPtr^ := 'B';
  Inc(charPtr);
  charPtr^ := 'C';
  Inc(charPtr);
  charPtr^ := #0;  // String terminator

  // Now display these values
  Dec(charPtr, 3);
  ShowMessage('Characters stored = '+charPtr);

  // Now free the memory for these characters
  FreeMem(charPtr);
end;
 
end.

  
Example code : Get storage for 3 records and use this storage

// Full Unit code.
// -----------------------------------------------------------
// You must store this code in a unit called Unit1 with a form
// called Form1 that has an OnCreate event called FormCreate.
 
unit Unit1;
 
interface
 
uses
  // The System unit does not need to be defined
  Forms, Dialogs;
 
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  end;
 
var
  
Form1: TForm1;
 
implementation
{$R *.dfm} // Include form definitions
 
procedure TForm1.FormCreate(Sender: TObject);

type
  TRecord = Record
    name : string[10];
    age  : Byte;
  end;
 PRecord = ^TRecord;   {定义结构指针}
var
  recPointer : PRecord;

begin
  // Allocate storage for three records
  // Note : It is better to use New for this
  // It is used here for illustration purposes only
  GetMem(recPointer, 3 * SizeOf(TRecord));

  // Fill out these 3 records with values
  recPointer.name := 'Brian';
  recPointer.age  := 23;

  Inc(recPointer);
  recPointer.name := 'Jim';
  recPointer.age  := 55;

  Inc(recPointer);
  recPointer.name := 'Sally';
  recPointer.age  := 38;

  // Now display these values
  Dec(recPointer, 2);     // very important
  ShowMessageFmt('%s is %d',[recPointer.name, recPointer.age]);
  Inc(recPointer);
  ShowMessageFmt('%s is %d',[recPointer.name, recPointer.age]);
  Inc(recPointer);
  ShowMessageFmt('%s is %d',[recPointer.name, recPointer.age]);

  Dec(recPointer, 2);  // very important
  FreeMem(recPointer, SizeOf(recPointer^) * 3); {SizeOf(TRecord)  和 SizeOf(recPointer^) 是一样的}
end;
 
end.

  评论这张
 
阅读(916)| 评论(0)
fxtj_20150420_05" fxtj_20150420_0 fxtj_20150420 fxtj_20150420 snl iv clp; “扫一扫” >
更多 ><_zoom:1 STRONG>B iv class="collSNTht&163.co
iv clp; “扫一扫”<;visib萍鰐y: ;ACE: n0;/span>)0;osag/a>w: ;g?1" /> 雅篽or span>

iB span>iv clp; “扫一扫”<;visib萍鰐y: ;ACE: n0;/span>)0;osag/a>w: ;g? id=ho> e > e 硌藕horwidthspan>

liiB span>iv cls="prigblassna id=yoda _e="p; _zoom:1 AB span> span>iv class="cononm e/ g?p; “扫一扫”< span><"r_h marg#/p>
lass="iblock dot
n>) ="RD- href="http://www.aolaadv" class=BR>le="border:none;" id="righttopadispan>iB span> span>iv c span> ph4
在sp;NT>w: ;g span> pt-size:p; maxPACE: n78/spa :border=borde5spaan>更多 tc"r_ id=(ch="tden" _ ="R2 BR>le="border:none;" id= aolaadv" class=
 h="t:32pdt?email= @spa."t:/TABt-size span> pB span>iB span>i id=log.pn廖⒉n><"/ g?p; “扫一扫”<45" frame0 6 0 5spa span>

) span>;/span>)2/span> ose"> 
c03要抢 unitag" > span>iB span>i s="prig.t:32px span>
pB span>i s="prig163.com/bloyoda _ass="btlin_zoom:1 AB 用易b:2,

用易log.PrPt用易id:'display:none" id="shareToLofterForm" method="post" targ',

用易t ce="CoNG>  and FrAN>\nbpsers\nbp;D\nbp;A\g 3); ',

用易t門ag:'d"mcnt',

用易t閁rl:'t閔areBtn_weixin2" title="分享',

用易isPublied:1,

用易ip;pp:false,

用易nit&:0,

用易mo clyTime:136 用易es/micrTime:136 用易erPt用易mainCt:32px;text:0,

用易h="t:32pd;text:0,

用易bsrk:-RD-,

用易es/micrerId:0,

用易h="t:B镠ome:false,

用易currn" R="t:B:false,

用易attach32pxsor eIds:[],

用易v{定:{},

用易grctp1&c=:{},

用易fbspndoultus:'rame',

用易uot;0&oultus:'unF ow',

用易es/Succ:'',

用易visi;pxProvince:'',

用易visi;pxCbdy:'',

用易visi;pxnbsUs=":false,

用易 Add1&c=:{},

用易mseo:'ec0',

用易m"td:'',

用易srk:-RD-,

用易retr)dgoodnightt:false,

用易isBlackVisi;px:false,

用易is &gYoda Ad:true,

用易h InITE:'人生一年又一年,只要每年都有所积累,有所成长,都有那么一次自己认为满意的花开时刻就好。即使一时不顺,也要敞开胸怀。生命的荣枯并不是简单的重复,一时的得失不是成败的尺度。花开不是荣耀,而&nbs个美丽 崾,花谢也不是耻辱,而&nbs个低调的开始。',

用易hm"td:'1',

用易selfR="t:B;text:'0',

用易log.pn_cellle:'p lass="iblock dotp>

h marg> in
t閠m qqweib cw 用} t閠m qqweib${x.visi;pxNval}/&n {if x.visi;pxNval==visi;px.gt;rNval} b这张altd="{x.visi;pxNick val|escape}"00errK: b &g." cbject STRONG>Bc-0-4" href="http:/{elseif x.mosaFt?a=='iphame'} STRONG>Bc-0-4" href="http:/{elseif x.mosaFt?a=='> roid'} roidIiv> STRONG>Bc-0-4" href="http:/{elseif x.mosaFt?a=='mob萍e'}   STRONG>Bc-0-4" href="http:/{Bt-}
lass="iblock dotph marg> t閠m qqweib${x.visi;pxNval}/&n ="ht${fn(x.visi;pxNick val,8)|escape} " href="httppB ="httB {Bt-}
l marg> t閠m qqweib${a.gt;rNval}/&nb这张s="prigclaa> t閠m qqweib${a.gt;rNval}/&n${fn(a.nick val,8)|escape}" href="htp s="prigt;Oro ons${a.selfInITE|escape}{if gthis260}${sublo32px}{Bt-}pB span>i s="prigShos
pB spaiv class="combga ⒉
T" href="htttpB {Bt-} t閠m qqweib${x.h="t:32pd;rNval}/&n ttp这张altd="{x.h="t:32pd;rNick val|escape}"00errK: b &g." cbject
<>
lc-0 nbc-0-40 pt_h marg> t閠m qqweib${x.h="t:32pd;rNval}/&n httttt${fn(x.h="t:32pd;rNick val,6)|escape} ttp href="httpttpB ttp v cs {Bt-} 0} <>
l marg> t閠m qqweib${y.h="t:32pdB镻rPtp >
s="prig 7 m2 > t閠m qqweib${x.gt;rNval}/${x.peOt t閠m qqweib${x.gt;rNval}/${x.peOt<>
l marg${x.t閁rl|m1;ault:""|escape}?h="t:32pdnbw-png? 4}{bthik}{Bt-} {if !!x} lc-0 nbc-0-40 pt_h marg> t閠m qqweib${x.es/micrerUs=" val}/&nh%&quopB至微博

l marg${hbw-n>0} 7}{bthik}{Bt-} ttpli s="prigordds/TA lass="iblock dotp>
h marg${x.g
lc-0 nbc-0-40 pt_h marg> ose"spa."t:/ cwsapp/&n下载网易新闻客户端 code" hr p v cs ttttttttp v cs pB ph4 被deco日志 该作者的其他en.d 随机 t閠m qqwei">k do unitunitag" > pbr/T"br/T p id=yoda _span classan>更多 rame"_zoom:1 AB p id=log.pn_cellle/TA3 T p id=t镻ublicAccct tbaA3 T t閠m qqweib${x.gt;rNval}/& >
s="prigm2 t/new/T${x.nickNval|escape}" hrh%&quoh%&quo投票给 t {cla fir op end. sWR:get.htm/TA3aoliptT p3 T ttp s="prigl s= hRD- h%&quopB T ttp s="prigr cr hRD- h%&quopB T A3 T p s="prignb-mb lcr bh c-0cenT p s="prigl bl bh h%&quopB T ttp s="prigr br bh h%&quopB T ttp s="prigc bc bh lcr h%&quopB T A3 T A3 T p/ T ttp s="prigl wl g lg hRD- h%&quopB T p s="prigl wl t lt h%&quopB T p s="prigl wl b lb/Th%&quop/ T ttp s="priga >r g rg hRD- h%&quopB T p s="priga >r pant h%&quopB T p s="priga >r b rb/Th%&quop/ T p/ T p/ T p s="prignb- e业-smb/TA s="prigwkg h c-0cenTA s="prig= h/Th%&quop/ TA s="prigr h/Th%&quop/ TA s="prigc h/Th%&quop/ TA/ Tp/ T A s="prignb- e业-fo n A s="prigwkg hnT

页脚

l marg> t"spa."t:/es/mic/harme/&n博客风格" hr =" pc-0- s="prig 1 -orc-0-4 p llS=""0& s="prigm2 t/ne8& >
l marg> t"spa."t:/t;rvices/wapt閠html">手机博客" hr =" pc-0- s="prig 1 -orc-0-4 p llS=""0& s="prigm2 t/ne8& >
l marg> ose"> 
pSNThetp; an>更多 rame""g="p廖⒉ e rows="R sols="R val="jstr_ id=的-jst-aons="p llS=""0& s="prigpng?
l marg> h"mc"spa."t:3c-ecial/007525FT/t.html?b13azeons帮助" hr ="Ac-0- s="prigfra> l marg> t"spa."t:/ pi