Udostępnij za pośrednictwem


operator new (CRT)

Przydzielić bloku pamięci ze sterty

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

  • Licznik
    Rozmiar alokacji.

  • obiekt
    Wskaźnik do bloku pamięci, w którym obiekt zostanie utworzony.

Wartość zwracana

Wskaźnik myszy do najniższej bajtowy adres nowo zaalokowanego składowania.

Uwagi

Ta forma operator new jest znany jako wektor nowe, w przeciwieństwie do skalarne nowy formularz (operator new).

W pierwszym formularzu tego operatora jest znany jako formularza nonplacement.Drugi formularz tego operatora jest znany jako formularz położenie i trzecia forma tego operatora jest nonthrowing formularza umieszczania.

W pierwszym formularzu operator jest definiowana przez kompilator i nie wymaga new.h, które mają zostać uwzględnione w programie.

operator usunąć [ zwalnia pamięć przydzielona przez operator new.

Można skonfigurować czy operator new[] zwraca wartość null lub zgłasza wyjątek w przypadku awarii.Zobacz nowych i usunąć Operatorzy Aby uzyskać więcej informacji.

Z wyjątkiem rzuca rzuca nr zachowanie CRT lub operator new zachowuje się jak operatora new [ w standardowa biblioteka języka C++.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

new[]

<new.h>

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.

Biblioteki

Wszystkie wersje biblioteki uruchomieniowej c.

Przykład

Następujące przedstawiono sposób użycia wektor, w formie 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;
}

Następujące przedstawiono sposób użycia wektorowe, umieszczania postaci 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 
}

Następujące przedstawiono sposób użycia wektorowe, położenie, rzut nr postaci 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;
}

Zobacz też

Informacje

Alokacja pamięci