? Arrays in Computer-Programmierung sind Sammlungen oder Sequenzen von Werten in einer einzigen Variablen Namen enthalten . Diese Datenstrukturen erlauben Programmierern Datenreihe oder Datenlisten für eine Vielzahl von Zwecken, z. B. Sortierung oder Iteration repräsentieren . Doch in vielen Programmiersprachen , wie C /C + + , Arrays Programmierer statischen , unveränderlichen Arraygrößen erklären müssen . Durch die Verwendung von Speicherzuweisung Techniken in einer Sprache wie C + +, kann der Programmierer dynamisch erstellen Arrays oder auch die Größe dieser Arrays während der Programmausführung . Arrays
unteren -Level-Sprachen wie C oder C + + sind Arrays statisch. Einmal mit einer Größe Wert erklärt wird , dass Array immer behaupten, dass Größe . Der Compiler reserviert einen kontinuierlichen Speicher für das Array . Alle anderen Funktionen oder Variablen , die Speicher benötigen nach dem Array platziert werden. Dementsprechend kann die Anordnung nicht in der Größe zu ändern, ohne die Daten zu überschreiben , die darauf folgt . Also, zum Beispiel einmal ein Programmierer deklariert ein Array mit zwanzig Räume, dass Array wird immer zwanzig Räume, ob sie verwendet werden oder nicht , für das Leben der Datenstruktur .
Speicherbelegung die Heap
um diese Einschränkung zu umgehen , jedoch können Programmierer Speicherzuweisung auf dem Heap . Normalerweise werden Variablen und Arrays in einem Programm oder Funktion deklariert auf dem Stapel , die im Wesentlichen aus kurzfristigen Speicher abgelegt . Am Ende der Lebensdauer der Funktion der Anordnung auf Oberflächen besteht , wird das Array gelöscht. Durch die Verwendung der "neuen" Schlüsselwort , jedoch kann der Programmierer Speicher aus dem Heap , das Langzeitgedächtnis , die außerhalb der Funktion, die das Array deklariert existiert, ist zu sammeln. Darüber hinaus kann der Programmierer den Heap verwenden, um Arrays dynamisch deklarieren.
Dynamische Arrays
Bei Arrays , hat der Programmierer , um die Größe des Arrays zu deklarieren Erklärung . Diese Größe ist durch einen konstanten Wert , entweder eine konstante Variable oder eine ganze Zahl dargestellt werden . Allerdings mit dem "neuen" Betreiber , kann der Programmierer reguläre Variablen der Größe Arrays zu verwenden, und der Benutzer kann auch den Wert dieser Variablen während der Laufzeit. Das folgende Beispiel zeigt den Unterschied:
int main () { int
arr [ 5]; //neues Array , müssen so bemessen sein mit konstanter valueint size = 5 ; int * Dynamic_Array = new int [size] ; //Größe des Arrays ist dynamisch
Größenänderung Arrays
Mit diesen dynamischen Arrays , kann der Programmierer dann erstellen Arrays, die Größe geändert werden kann . Der "vector" -Klasse stellt einen dynamisch wachsenden oder schrumpfenden Array, das den Vorteil der dynamischen Arrays taks . Das folgende Beispiel zeigt , wie ein einfaches Array, das in der Größe größer wächst erstellen :
int main () { int
* arr = new int [ 5]; int new_size = 10;
arr [ 0 ] = 1; arr [ 1] = 2;
/* resize * /int * arr2 = new int [ new_size ] ;
arr2 [0] = arr [ 0]; arr2 [1] = arr [ 1];
delete [] arr ; arr = arr2 ;
return 0; }