Operator neu (CRT)
Ordnen Sie Speicherblock aus dem Heap
void *__cdecl operator new[](
size_t count
);
void *__cdecl operator new[] (
size_t count,
void * object
) throw();
void *__cdecl operator new[] (
size_t count,
const std::nothrow_t&
) throw();
Parameter
Anzahl
Die Größe der Reservierung.Objekt
Ein Zeiger auf einen Speicherblock, in dem das Objekt erstellt wurde.
Rückgabewert
Ein Zeiger auf die niedrigsten Byte adresse des neu zugeordneten Speichers.
Hinweise
Diese Art von operator new wird als neuer Vektor, im Gegensatz zu den skalaren neuen Formular (Operator neu).
Die erste Form dieses Operators bezeichnet als das nonplacement Formular.Die zweite Form dieses Operators bezeichnet wird, da die Positionierungsform und das dritte Form dieses Operators nonthrowing die Positionierungsform ist.
Die erste Form des Operators wird vom Compiler definiert und nicht im Programm erfordert, new.h eingefügt werden können.
Operator delete [] gibt den Arbeitsspeicher frei, der mit dem Operator new zugeordnet ist.
Sie können konfigurieren, ob operator new[] NULL zurückgibt, oder bei Fehlern eine Ausnahme auslöst.Weitere Informationen finden Sie unter Das neue und delet-Operatoren .
Mit Ausnahme von auslösendem oder NO-auslösendem Verhalten der CRT verhält sich wie operator newnew [] - Operators in der C++-Standardbibliothek.
Anforderungen
Routine |
Erforderlicher Header |
---|---|
new[] |
<new.h> |
Um Kompatibilität zusätzlichen Informationen finden Sie unter Kompatibilität in der Einführung.
Bibliotheken
Alle Versionen Cs.
Beispiel
Im Folgenden wird gezeigt, wie die vektorielle, nicht außerhalb der Form von operator newverwendet.
// crt_new4.cpp
#include <stdio.h>
int main() {
int * k = new int[10];
k[0] = 21;
printf("%d\n", k[0]);
delete [] k;
}
Im Folgenden wird gezeigt, wie die vektorielle Positionierungsform des operator newverwendet.
// crt_new5.cpp
#include <stdio.h>
#include <new.h>
int main() {
int * i = new int[10];
i[0] = 21;
printf("%d\n", i[0]);
// initialize existing memory (i) with, in this case, int[[10]
int * j = new(i) int[10]; // placement vector new
printf("%d\n", j[0]);
j[0] = 22;
printf("%d\n", i[0]);
delete [] i; // or, could have deleted [] j
}
Im Folgenden wird gezeigt, wie der Position, NO-THROW-Formular Vektor, der operator newverwendet.
// crt_new6.cpp
#include <stdio.h>
#include <new.h>
int main() {
int * k = new(std::nothrow) int[10];
k[0] = 21;
printf("%d\n", k[0]);
delete [] k;
}