¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
operator new (CRT)
and
div
eof
not
or
xor
Collapse the table of content
Expand the table of content
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

operator new (CRT)

Asigna el bloque de memoria de montón

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

count

El tamaño de la asignación.

objeto

Un puntero a un bloque de memoria en el que el objeto se creará.

Un puntero a la dirección de byte inferior de almacenamiento recién asignado.

Este formulario de operator new se conoce como nuevo escalar, en contraposición al nuevo formulario de vector (operador new []).

El primer formulario de este operador se conoce como el formulario de nonplacement. El segundo formato de este operador se conoce como el formato de la posición y el tercer formulario de este operador es el nonthrowing, forma de ubicación.

El primer formulario de operador está definido por el compilador y no requiere new.h estar incluido en el programa.

operador delete libera memoria asignada con operator new.

Puede configurar si el operador new devuelve null o produce una excepción en el error. Vea Los operadores new y delete para obtener más información.

A excepción de comportamiento que produce o ninguno- que produce, CRT operator new se comporta como operador nuevo en la biblioteca estándar de C++.

Rutina

Encabezado necesario

new

<new.h>

Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.

Bibliotecas

Todas las versiones de las bibliotecas en tiempo de ejecución de C.

A continuación se muestra cómo utilizar el escalar, formulario de nonplacement de operator new.

// crt_new1.cpp
#include <stdio.h>
int main() {
   int * i = new int(6);
   printf("%d\n", *i);
   delete i;
}

A continuación se muestra cómo utilizar el escalar, forma de ubicación de operator new.

// crt_new2.cpp
#include <stdio.h>
#include <new.h>
int main() {
   int * i = new int(12);
   printf("*i = %d\n", *i);
   // initialize existing memory (i) with, in this case, int(7)
   int * j = new(i) int(7);   // placement new
   printf("*j = %d\n", *j);
   printf("*i = %d\n", *i);
   delete i;   // or, could have deleted j
}

A continuación se muestra cómo utilizar el escalar, posición, formulario de ninguno- captura de operator new.

// crt_new3.cpp
#include <stdio.h>
#include <new.h>
int main() {
   // allocates memory, initialize (8) and if call fails, new returns null
   int * k = new(std::nothrow) int(8);   // placement new
   printf("%d\n", *k);
   delete k;
}

No es aplicable Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

Mostrar:
© 2015 Microsoft