new işleci (CRT)

Bellek bloğu öbekten

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();

Parametreler

  • Sayımı
    Ayırma boyutu.

  • Nesne
    Bir nesne oluşturulur bellek bloğu için bir işaretçi.

Dönüş Değeri

En düşük bayt adresini yeni ayrılan depolama için bir işaretçi.

Notlar

Bu formu, operator new skalar yeni form aksine yeni vektör olarak bilinir (Yeni işleç).

Bu işleç ilk biçimini nonplacement form olarak bilinir.Bu işleç ikinci form yerleştirme formu olarak bilinen ve bu operatörün üçüncü form nonthrowing yerleştirme formu.

İşletmenin ilk form derleyici tarafından tanımlanır ve programınızda dahil edilecek new.h gerektirmez.

işletmeni silmek [ yeni işleciyle ayrılan belleği serbest bırakır.

Yapılandırabileceğiniz olup olmadığını operator new[] null döndürüyor veya arıza bir istisna atar.Bkz: Yeni ve işleçler silmek daha fazla bilgi için.

Atma dışında ya da Hayır atma davranışı, crt operator new gibi davranan Yeni operator [ Standart C++ Kitaplığı'nda.

Gereksinimler

Yordamı

Gerekli başlık

new[]

<new.h>

Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.

Kitaplıkları

Tüm sürümleri c çalışma zamanı kitaplıkları.

Örnek

Aşağıdaki vektör, nonplacement şeklinde nasıl kullanılacağını gösteren 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;
}

Aşağıdaki vektör, yerleşim biçiminin nasıl kullanılacağını gösteren 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 
}

Aşağıdaki vektör, yerleşimi, no-throw formu nasıl kullanılacağını gösteren 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;
}

Ayrıca bkz.

Başvuru

Bellek Ayırma