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