Exportar (0) Imprimir
Expandir todo
div
EOF
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

_recalloc

Combinación de realloc y calloc. Reasigna una matriz en memoria y se inicializa sus elementos en 0.

void *_recalloc( 
   void *memblock
   size_t num,
   size_t size 
);

memblock

Puntero al bloque de memoria previamente asignado.

num

número de elementos.

size

longitud en bytes de cada elemento.

_recalloc devuelve un puntero de void (y posiblemente desplazado) al bloque de memoria reasignado.

Si no hay suficiente memoria disponible para expandir el bloque al tamaño especificado, el bloque original permanece sin cambios, y se devuelve NULL .

Si el tamaño solicitado es cero, el bloque indicada por memblock se libera; el valor devuelto es NULL, y memblock se permite informar sobre un bloque liberado.

Los puntos del valor devuelto a un espacio de almacenamiento que se garantiza que sea sencilla alineadas para el almacenamiento de cualquier tipo de objeto. Para obtener un puntero a un tipo distinto de void, utilice una conversión de tipo del valor devuelto.

Los cambios de función derecalloc de _el tamaño de un bloque de memoria asignado. Los puntos del argumento de memblock al principio del bloque de memoria. Si memblock es NULL, _recalloc se comporta de la misma manera que calloc y asigna un nuevo bloque de num * bytes de size . Cada elemento se inicializa en 0. Si memblock no es NULL, debe ser un puntero devuelto por una llamada anterior a calloc, a malloc, o a realloc.

Dado que el nuevo bloque puede estar en una nueva ubicación de memoria, no garantiza que el puntero devuelto por _recalloc para ser el puntero pasado a través del argumento de memblock .

_recalloc establece errno a ENOMEM si se produce un error en la asignación de memoria o si la cantidad de memoria solicitada supera _HEAP_MAXREQ. Para obtener información sobre estos y otros códigos de error, vea errno, _doserrno, _sys_errlist, y _sys_nerr.

llamadas realloc derecalloc para usar la función de C++ _set_new_mode para establecer el nuevo modo de controlador. El nuevo modo de controlador indica si, en el error, realloc es llamar a la nueva rutina de controlador como lo establece _set_new_handler. De forma predeterminada, realloc no llama a la nueva rutina de controlador en el error asignar memoria. Puede invalidar este comportamiento predeterminado para que, cuando _recalloc no puede para asignar memoria, realloc llame a la nueva rutina del controlador de la misma manera que el operador de new cuando falla por la misma razón. Para reemplazar el valor predeterminado, llame a

_set_new_mode(1)

al principio del programa, o vínculo con NEWMODE.OBJ.

Cuando la aplicación se vincula con una versión de depuración de las bibliotecas en tiempo de ejecución de C, _recalloc resuelve a _recalloc_dbg. Para obtener más información sobre cómo la pila se administra durante el proceso de depuración, vea El montón de depuración de CRT.

_recalloc es __declspec(noalias) marcado y __declspec(restrict), lo que significa que la función está garantizada para no modificar variables globales, y que el puntero devuelto no es con alias. Para obtener más información, vea noalias y limitado.

rutina

Encabezado necesario

_recalloc

<stdlib.h> y <malloc.h>

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

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

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft