Einzelnen Beitrag anzeigen

supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#1

new() bei array of record?

  Alt 8. Apr 2010, 15:36
hi all
ich drück mich eigentlich immer um fragen die eigentlich so einfach sind aber irgendwie bin ich mir nach langem suchen immer noch nicht im klaren ob das was ich vor hab nun ohne oder mit new / dispose gemacht werden muss

ich habe sowas:

Delphi-Quellcode:
  type Tflaeche = record
  data1,data2:string[100];
  top:integer;
  bottom :integer;
  left:integer;
  right:integer;
  end;

  Tclicklist = array of array of Tflaeche;
und möchte da jetzt dieses array of array mit daten füllen
muss ich da jetzt new() benutzen? oder macht das delphi schon im hintergrund wie mit array of string?
klar das ich das array nach benutzung wieder mit setlength(0) kürzen muss um kein speicherleck zu verursachen..
aber auch hier die frage - reicht es ein setlenght(bla,0) auf das "root" array zu machen oder muss ich - weil es ja 2dimensional ist, jedes unterarray auch auf länge 0 setzen?

ich würde da jetzt so vorgehen, um meine clickliste zu instanzieren:

Delphi-Quellcode:
var list:Tclicklist;

setlength(list,chart.SeriesCount);
for s := 0 to high(list) do begin
    setlength(list[s],chart.Series[s].Count);
    for c := 0 to high(list[s]) do new(list[s,c]);
end;
1. kann ich mir das new() jetzt sparen?

2. muss ich nacher pro ebene setlength() machen beim array freigeben? oder reichts aufs root-array?
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat