Einzelnen Beitrag anzeigen

Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Funktionsaufruf: Dauert immer länger. Warum?

  Alt 11. Apr 2009, 17:10
Zitat von Christian Seehase:
Wenn Du dieses verlängerst, muss, normaler Weise, jedesmal der Speicher neu angefordert, und der bisherige Inhalt dort hineinkopiert werden.
Naja, ned unbedingt. Ich bin mir jetzt nicht ganz sicher, aber ich denke schon, dass der Delphi-Speichermanager schlau genug ist, um das Array einfach zu vergrößern, wenn noch genug Platz dahinter frei ist - also es wird nicht bei jeder Größenänderung das gesamte Array kopiert.
Trotzdem ist es natürlich besser, eher einmal zu viel anzufordern als mehrmals stückchenweise.

EDIT: @Go2EITS: Strings sind, wie alle dynamischen Arrays, sowieso intern Pointer auf dem Stack, die auf irgendeinen Bereich auf dem Heap zeigen. Wenn du da was mit Pointern machst, ist das intern genau das gleiche, nur schwerer zu lesen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat