Dynamik
In früheren Volumenkursen haben wir die Schaffung einer Masse in einer Weise betrachtet, wie:
const int Nmax = 1000;
Int A[Nmax];
oder solche:
int A[1000];
So eine Art
statische Masse♪ Einer der Nachteile ist, dass die Größe und Art der Masse während des Programms nicht verändert werden kann.
Das obige Beispiel erzeugt eine statische Masse von 1000 Elementen. Ich meine, es gibt einen 1000-Typ Speicherplatz im Gedächtnis.
int
(Masse aus 1000 Typenelementen)
int
) Die Adresse wird in der Variable gespeichert.
A
♪ Wenn ein Gremium von mehr als 1.000 Elementen bearbeitet werden muss, muss es die Beschreibung ändern und das Programm neu kompilieren. Beim Umgang mit kleinen Massen wird der größte Teil des Speichers, der der statistischen Masse gewidmet ist, vom Nervenkitzel benutzt.
Um den Computerspeicher effektiv zu nutzen, muss er dynamisch sein. Mit anderen Worten, während der Durchführung des Programms sollte die Erinnerung an Objekte bei Bedarf (Erstellung neuer Einrichtungen) bereitgestellt werden.
B C++ Operationen
new
und
delete
ist für die dynamische Verteilung des Computerspeichers vorgesehen. Betrieb
new
den Speicher vom freien Speicher unterscheidet, und die Operation
delete
befreit den Speicher.
Beispiel für dynamische Variablen
int *A = neu; //
*A = 15; // Initialisierung des Objekts erfolgt über den Index (*)
/ Initialisierung kann sofort durchgeführt werden
/ wenn das dynamische Objekt erklärt wird
Int *B = neuer Int(25);
Cout PERPENT *A À À < < < < < < < < > > > > > > > > > >
Löschen A;
B löschen;
Betrieb
new
erstellt ein Objekt eines bestimmten Typs, gibt ihm einen Speicher und gibt die richtige Art von Index in diesen Speicherbereich zurück. Kann der Speicher z.B. bei Abwesenheit von freien Stellen nicht unterschieden werden, wird ein Null-Indikator zurückgegeben, d.h. der Index wird den Wert 0 zurückgeben. Die Erinnerung ist für jede Art von Daten möglich:
int
♪
float
♪
double
♪
char
usw.
In gleicher Weise kann C++ erzeugt werden
Dynamische Massedie dynamische Speicher verwenden. Die Größe dieser Größe kann im Programm ' s Arbeit, wie die Tastatur erreicht werden. Der größte Teil der Operation
new
und
delete
Anwendbar für Dynamiken statt dynamische Variablen.
In der Syntax des C
Int N;
scanf("%d, " N);
int *mas = malloc (sizeof(int) * N);
// anschließend die Größe der Masse ändern
/ gebraucht realloc
♪
#
free(mas); // Speicher freigeben
In der Synthaxis der C++
Int N;
cin Gradient N,
Int* A = neuer Int [N];
/ die Größe der Masse ändern
// Übertragung der Daten auf eine andere Masse und die alte Reinigung
#
Löschen []mas; / Befreiung des Gedächtnisses
/ quadratische Klammern anzeigen
/ dass wir Speicher frei von der Masse