有些不对。
只要
new(b)就可以了。a不用New,因为声明的时候已经分配了内存。
var
b:^TB;
begin
new(b);
b^.data.i := 1;
b^.j := 2;
globalList.add(b);
end; 另外,Delphi只有New(b),没有你说得New(PB)的语法。
只要
new(b)就可以了。a不用New,因为声明的时候已经分配了内存。
var
b:^TB;
begin
new(b);
b^.data.i := 1;
b^.j := 2;
globalList.add(b);
end; 另外,Delphi只有New(b),没有你说得New(PB)的语法。
解决方案 »
- 请教treeview的问题
- 如何使窗体在桌面之上,桌面图标之下显示运行(delphi)
- 如何在一个form上按了esc键后,该form关闭啊?
- midas 中如何在客户端建立明细表(主从表)? 求救!!!
- DEMO字段怎么处理?
- 哪里可以下载 lotus ScreenCam 急
- 请问checkbox和listbox如何删除多个item?请指教!谢谢了!老是出错!
- 如何把一个自定义的类对象写进一个文件
- 使用Batchmove的控件,从MSSQL拷贝新表,为VFP格式,小数位数为7位,发生截断,求救!!!
- 如何在delphi中拦截关闭窗口消息
- 简单问题!过节了给分啦?????????????????????????????????
- 我准备学delphi,哪本书比较好?
改成现在的样子才能执行。关于b=New(PB)确实没有这样的语法,可是D6自带的demo里面有这样的语句,编译运行也没有问题。
b=New(PB)。
刚才我在D5中试了,编译器根本就不通过。
而且上面的
new(a);
dispose(a);
均不能通过编译。难道D6那么违背常理吗?我再看看。
在demos\virtual listview里面就有这样的语句,ShellItem := New(PShellItem)。
a:TA,new(a),dispose(a)都不能通过?
在demo\db\dbxexplorer里面也有
PFieldData = ^TFieldData;
TFieldData = record
Field: TField;
NewValue: string;
OldValue: string;
CurValue: string;
EditValue: string;
Edited: Boolean;
end;FD := New(PFieldData);
FD := New(PFieldData);怎么来的?
还有,data的内容经常非法存取,debug发现内存分配不太正常……