Sdílet prostřednictvím


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;
}

Viz také

Referenční dokumentace

Přidělení paměti