Witam, mam do napisania listę w Delphi, niestety nie cierpię tego języka i mam ciągle naruszenie pamięci, naskrobałem szybko coś krótkiego żebyście mi pokazali co robię źle. Kod wygląda tak:
Lista:
unit list;
interface
type
PList=^TList;
TList=Record
word1: String;
word2: String;
Next: PList;
Prev: PList;
First: PList;
Last: Plist;
end;
procedure addToList(list: PList; word1, word2: String);
implementation
procedure addToList(list: PList; word1, word2: String);
var
TMP: PList;
begin
TMP:=new(PList);
if list=nil then
begin
TMP.word1:=word1;
TMP.word2:=word2;
TMP.First:=TMP;
TMP.Last:=TMP;
TMP.Next:=nil;
TMP.Prev:=nil;
list:=TMP;
end;
end;
end.
Procedura pracujaca na liscie:
procedure TForm1.FormCreate(Sender: TObject);
begin
list:=nil;
addtolist(list, 'aaa', 'sss');
showmessage(list.word1);
end;
Chciałem zrobić żeby operować bezpośrednio na liście a nie wysyłając listę do funkcji ale niestety nie mam pojęcia jak to zrobić :/ Jeżeli ktoś ma czas rzucić na to okiem dobrze by było gdyby napisał gdzie popełniam błąd oraz ewentualnie jak dobrze przygotować strukturę klasy żebym mógł na obiekcie pracować.
Z góry dzięki za pomoc.