var P:^Integer; begin New(P);//malloc P^:=143; ShowMessage(IntToStr(P^)); Dispose(P);//free end;
var p:Pointer;getmem(p,len) freemem(p)
那在Object Pascal 中有类似于C++中的引用吗?
再帮我看一下这段代码怎么有错误? program Project1;{$APPTYPE CONSOLE}uses SysUtils;type pBitNode:^BitNode; BitNode=Record Data:Char; LChild:pBitNode; RChild:pBitNode; end; begin { TODO -oUser -cConsole Main : Insert code here } end.
pBitNode:^BitNode; => pBitNode=^BitNode;
用标准的API好 AllocMem .............
getmem(),freemem() 参数设置delphi的帮助文件里有!
引用就是 例如: var p:^Integer; ... new(p); p^:=2;//p^就是引用
allocmem,freemem: 自指定数据长度 new,dispose: 定长的数据
var pstr:pchr; begin GetMem(pstr,sizeof(char)*100); StrCopy(pstr,'Hello world'); FreeMem(pstr); end;
P:^Integer;
begin
New(P);//malloc
P^:=143;
ShowMessage(IntToStr(P^));
Dispose(P);//free
end;
freemem(p)
program Project1;{$APPTYPE CONSOLE}uses
SysUtils;type
pBitNode:^BitNode;
BitNode=Record
Data:Char;
LChild:pBitNode;
RChild:pBitNode;
end;
begin
{ TODO -oUser -cConsole Main : Insert code here }
end.
=>
pBitNode=^BitNode;
AllocMem .............
例如:
var
p:^Integer;
...
new(p);
p^:=2;//p^就是引用
new,dispose: 定长的数据
pstr:pchr;
begin
GetMem(pstr,sizeof(char)*100);
StrCopy(pstr,'Hello world');
FreeMem(pstr);
end;
free--Dispose or FreeMem