Autor Beitrag
Mari
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Sa 08.02.03 13:24 
Kann ich den Speicherplatz den ein Array belegt während das Programm läuft wieder freigeben wenn ich die Werte nicht mehr brauche? Es ist bestimmt nicht gerade geschwindigkeitsfördernd wenn sich während des gesamten Programablaufes ein Array mit 100.000 Real-Werten imSpeicher befindet, oder macht das nichts aus?
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Sa 08.02.03 16:16 
Hallo,

wenn Du das Array dynamisch erzeugt hast, dann kannst Du auch den Speicher wieder freigeben.


Möglichkeit 1:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
type
  TMyArray=array of Double;

var
  DblArr:TMyArray;

  ...
  // array mit 100000 Werten initialisieren
  SetLength(DblArr, 100000);
  ...
  // array wieder freigeben
  SetLength(DblArr, 0);


Möglichkeit 2:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
type
  PMyArray=^TMyArray;
  TMyArray=array[1..100000] of Double;

var
  DblArr:PMyArr;

  ...
  // array initialisieren
  New(DblArr);
  ...
  // Speicher wieder freigeben
  Dispose(DblArr);

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
Mari Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Sa 08.02.03 17:57 
Und wenn das Array nicht dynamisch ist?
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 08.02.03 18:06 
Siehe Möglichkeit 2.
Mari Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Sa 08.02.03 18:26 
Ich will euch ja nicht ärgern, aber bei meinem Array ist die erste Dimension dynamisch und die zweite und dritte nicht :wink:
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: So 09.02.03 10:12 
Hallo Mari,

ich verstehe Deine Frage nicht ganz, vermute aber einmal, Du meinst so oder so ähnlich?

ausblenden Quelltext
1:
2:
3:
type
  TStatischArr=array[1..10, 1..10] of Double;
  TDynArr=array of TStatischArr;


Wenn dem so ist, siehe Möglichkeit 1.

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
Mari Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: So 09.02.03 19:01 
Ich meine es so:
ausblenden Quelltext
1:
var x: Array of Aray[1..100,1..100] of double					
HeLe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Mo 17.02.03 17:31 
einfach setlength(x,0)
Mari Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Mo 17.02.03 19:23 
Damit kann ich die erste Dimension löschen. Aber die zweite und dritte?
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Mo 17.02.03 19:26 
Wird automatisch mit freigegeben (RTTI [Runtime Type Information] sei dank).

_________________
Ist Zeit wirklich Geld?
Mari Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Mo 17.02.03 20:31 
Das heißt also mit
ausblenden Quelltext
1:
setlength(x,0)					

werden alle drei Dimensionen wieder freigegeben?
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Mo 17.02.03 20:39 
Ja.

_________________
Ist Zeit wirklich Geld?