ein tippfehler war mir unterlaufen, ich hab es nun geaendert.
Delphi-Quellcode:
PList = ^vList;
vList = record
nCount : Cardinal; // number of datas
pItem : Pointer; // data pointer
pNextItem : PList; // next item
pLastItem : PList; // previous item
end;
vArray = class
m_list : vList;
public
constructor Create(pValue: Pointer);
destructor Destroy; override;
end;
constructor ZArray.Create(pValue: Pointer);
var
p : Pointer;
begin
if Assigned(pValue) then
begin
with Self do
begin
m_list.nCount := 1;
New(m_list.pItem);
m_list.pItem^ := pValue^; // hier soll der fehler sein
m_list.pNextItem := nil;
m_list.pLastItem := nil;
end
end;
end;
Zitat von
Khabarakh:
Zitat von
DeddyH:
Ich steig da nicht mehr durch: PList, ZList, vList, m_list, was ist was?
dito, aber es muss auf jeden Fall
m_list.pItem := pValue;
heißen.
Und ein
with self bewirkt nicht wirklich viel
.
ich moechte den wert kopieren, nicht der adresse von pValue, denn wenn die pValue im fall auf NIL gesetzt wird, dann schmiert pItem auch ab, is doch so nicht?