Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
21. Okt 2014
Das hat nichts mit "schlau" zu tun.
Es ist einfach nicht möglich alle SubArrays in eine Reihe zu legen (OK, möglich teilweise schon, aber sinnlos), um dann alles mit einem FillChar füllen zu können.
Das fällt sofort auf, wenn man weiß wie so ein dynamisches Array aufgebaut ist und daß die Verwaltungsdaten (Länge und Referenzzählung) auch noch vor dem Ersten (Nullten) Feld liegen.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
20. Okt 2014
Hier ist das immer so.
Automatisch verwaltete Typen werden immer initialisiert, denn sonst könnten sie nicht autonatisch verwaltet werden. (von den entsprechenden Funktionen: SetLength, New, Create usw.,)
Sowas Einfaches, wie z.B. Integer, Char, Record, statisches Array usw., wird per se nicht initialisiert, es sei denn es liegt in einem Bereich, welcher immer initialisiert wird. (z.B....
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
20. Okt 2014
Das array of integer mit FillChar/ZeroMemory
und das array of array mußt du dabei einzeln durchlaufen.
Ich weiß jetzt nicht genau, ob der Speicher beim Initialisieren mit 0 gef+llt wird, wenn ja, und wenn "schnell" = kurzer Code, dann eventuell auch so
A := nil;
SeltLength(A, L1, L2);