nový operátor (CRT)
Přidělit blok paměti z haldy
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();
Parametry
počet
Velikost přidělení.objekt
Ukazatel na blok paměti, ve kterém bude objekt vytvořen.
Vrácená hodnota
Ukazatel na nejnižší adrese bajt nově přidělené skladování.
Poznámky
Tato forma operator new se označuje jako vektor nové v kontrastu k skalární nový formulář (nový operátor).
První formulář tento operátor je známa jako nonplacement formuláře.Druhý formulář tento operátor je označován jako umístění formuláře a třetí formulář tento operátor je nonthrowing umístění formuláře.
První formulář operátor je definované kompilátorem a new.h, které mají být zahrnuty v programu nevyžaduje.
operátor delete [ uvolní paměť přidělenou nový operátor.
Můžete konfigurovat zda operator new[] vrátí hodnotu null nebo výjimku při selhání.Viz nové a odstranit operátory Další informace.
S výjimkou o vyvolání vyvolání č chování CRT nebo operator new se chová jako [] nový operátor v Standard C++ Library.
Požadavky
Rutina |
Požadované záhlaví |
---|---|
new[] |
<new.h> |
Další informace o kompatibilitě, viz Compatibility v úvodu.
Knihovny
Všechny verze C Runtime knihovny.
Příklad
Následující ukazuje použití vektoru, forma nonplacement operator new.
// crt_new4.cpp
#include <stdio.h>
int main() {
int * k = new int[10];
k[0] = 21;
printf("%d\n", k[0]);
delete [] k;
}
Následující ukazuje použití vektoru, umístění formu operator new.
// 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
}
Následující ukazuje použití vektoru, umístění, formě throw č operator new.
// 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;
}