先是定义了这样一个记录,和一个记录的指针结构
RProduct = record
SDeInfoID :integer;
KeyId :integer;
SDeInfoAdd:string;
end;
TPRProduct = ^RProduct;这样使用 pProduct:TPRProduct;
pRProduct:RProduct;
List:TStringList; for i:=0 to 10 do
begin
GetMem(pProduct, SizeOf(RProduct));
pRProduct:= pProduct^;
pRProduct.SDeInfoAdd:='AAAAA'; ////这句经常会报错,不知道是为什么
List.Add(pProduct);
end;请教一下高人
RProduct = record
SDeInfoID :integer;
KeyId :integer;
SDeInfoAdd:string;
end;
TPRProduct = ^RProduct;这样使用 pProduct:TPRProduct;
pRProduct:RProduct;
List:TStringList; for i:=0 to 10 do
begin
GetMem(pProduct, SizeOf(RProduct));
pRProduct:= pProduct^;
pRProduct.SDeInfoAdd:='AAAAA'; ////这句经常会报错,不知道是为什么
List.Add(pProduct);
end;请教一下高人
另外GetMen用FreeMem释放,那New后应该怎样去释放啊?
new会为一个指针变量分配内存,会自动计算指针所指数据结构需要空的空间大小。实际上看new的源程序,其中用到了getmem,同时执行了一些初始化的操作。new以后用dispose释放
SDeInfoID :integer;
KeyId :integer;
SDeInfoAdd:string;
end;使用 GetmMem,
SDeInfoAdd:string; 要改成 SDeInfoAdd:string[255]; 这样的
new会为一个指针变量分配内存,会自动计算指针所指数据结构需要空的空间大小GetMem(prec)之後FillChar(prec^, SizeOf(prec^), 0);
http://topic.csdn.net/u/20100817/08/7619229d-2bce-466b-a08a-56fc29c1aa72.html