Freigeben über


calloc

Ordnet ein Array mit den Elementen im Speicher zu, die mit 0 initialisiert werden.

void *calloc( 
   size_t num,
   size_t size 
);

Parameter

  • num
    Anzahl von Elementen.

  • size
    Länge in Byte) der einzelnen Elemente.

Rückgabewert

calloc gibt einen Zeiger auf den belegten Platz zurück.Der Speicherplatz, der durch den Rückgabewert verweist, ist für Speicher entsprechend Objekt eines beliebigen Typs ausgerichtet werden soll.Um einen Zeiger auf einen anderen Typ als voidabzurufen, verwenden Sie eine Typumwandlung im Rückgabewert.

Hinweise

Die calloc-Funktion ordnet Speicherplatz für ein Array num Länge der einzelnen Elemente size Bytes.Jedes Element wird mit 0 initialisiert.

calloc legt diesen fest ENOMEM zu errno , wenn eine Speicherbelegung fehlschlägt, oder wenn der angeforderte Arbeitsspeicher _HEAP_MAXREQüberschreitet.Weitere Informationen zu diesem und anderen Fehlercodes finden Sie unter errno, _doserrno, _sys_errlist und _sys_nerr.

calloc Aufrufe malloc , um die Funktion _set_new_mode C++ verwendet werden soll, um den neuen Handler Modus festzulegen.Der neue Modus gibt an, ob die Handler auf Fehler, malloc , die neue Handler routine legen Sie z. B. durch _set_new_handleraufzurufen ist.Standardmäßig ruft malloc nicht die neuen Handler routine bei Bindungsfehlern Speicher belegen.Sie können dieses Standardverhalten überschreiben, dass beim calloc Speicher belegen, kann nicht malloc die neue Handler routine genauso aufgerufen wird, dass der Operator new , wenn sie aus demselben Grund fehlschlägt.Um den Standardwert überschreiben, rufen

_set_new_mode(1)

früh im Programm oder eine Verknüpfung mit NEWMODE.OBJ (siehe Link-Optionen).

Wenn die Anwendung mit einer Debugversion der C-Laufzeitbibliotheken verknüpft ist, wird calloc zu _calloc_dbgauf.Weitere Informationen darüber, wie der Heap während des Debuggens Prozesses verwaltet wird, finden Sie unter Der CRT-Debugheap.

calloc ist als __declspec(noalias) und __declspec(restrict)und bedeutet, dass die Funktion nicht garantiert globale Variablen ändern und dass der zurückgegebene Zeiger nicht mit einem Alias versehene.Weitere Informationen finden Sie unter noalias und Beschränken Sie ein.

Anforderungen

Routine

Erforderlicher Header

calloc

<stdlib.h> und <malloc.h>

Um Kompatibilität zusätzlichen Informationen finden Sie unter Kompatibilität in der Einführung.

Beispiel

// crt_calloc.c
// This program uses calloc to allocate space for
// 40 long integers. It initializes each element to zero.
 
#include <stdio.h>
#include <malloc.h>

int main( void )
{
   long *buffer;

   buffer = (long *)calloc( 40, sizeof( long ) );
   if( buffer != NULL )
      printf( "Allocated 40 long integers\n" );
   else
      printf( "Can't allocate memory\n" );
   free( buffer );
}
  

.NET Framework-Entsprechung

Nicht zutreffend. Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

Siehe auch

Referenz

Speicherbelegung

Frei

malloc

realloc