Udostępnij za pośrednictwem


calloc

Przydziela tablicę pamięci z elementami inicjowany na 0.

void *calloc( 
   size_t num,
   size_t size 
);

Parametry

  • num
    Liczba elementów.

  • size
    Długość w bajtach każdego elementu.

Wartość zwracana

callocZwraca wskaźnik do przydzielonego miejsca.Miejsca wskazywanego przez wartość zwracana jest gwarantowane zostały odpowiednio dostosowane do przechowywania dowolnego typu obiektu.Aby uzyskać wskaźnika typu innego niż void, użyj typu oddanych na wartości zwracanej.

Uwagi

calloc Funkcji przydziela obszar przechowywania dla tablicy num o długości elementów size bajtów.Każdy element jest inicjowany na 0.

callocUstawia errno do ENOMEM Jeśli alokacja pamięci nie powiedzie się lub jeśli żądana ilość pamięci, przekracza _HEAP_MAXREQ.Aby uzyskać informacje na temat tego i innych kodów błędów, zobacz errno, _doserrno, _sys_errlist i _sys_nerr.

callocwywołania malloc , aby użyć C++ _set_new_mode funkcji, aby ustawić nowy tryb obsługi.Nowy tryb obsługi wskazuje, czy w przypadku awarii, malloc jest wywołanie procedury obsługi nowych określone przez _set_new_handler.Domyślnie malloc nie wywołuje nowe procedury obsługi na nie można przydzielić pamięci.Można zastąpić to zachowanie domyślne tak, aby, gdy calloc nie można przydzielić pamięci, malloc wywołuje nowe procedury obsługi w taki sam sposób new operator wykonuje, gdy go nie powiedzie się z tego samego powodu.Aby zastąpić ustawienia domyślne, zadzwoń

_set_new_mode(1)

wczesnym etapie programu lub łącze z NEWMODE.OBJ (see Opcje łącza).

Gdy aplikacja jest połączony z debugowania wersją biblioteki uruchomieniowej C, calloc jest rozpoznawany jako _calloc_dbg.Aby uzyskać więcej informacji na temat jak sterty jest zarządzany w trakcie debugowania, zobacz The CRT debugowania sterty.

callocjest oznaczony jako __declspec(noalias) i __declspec(restrict), co oznacza, że funkcja zagwarantowane jest nie do modyfikacji zmiennych globalnych, i że zwrócony wskaźnik nie jest aliasu.Aby uzyskać więcej informacji, zobacz noalias i ograniczyć.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

calloc

<stdlib.h> i <malloc.h>

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.

Przykład

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

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywołać standardowych funkcji C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

Zobacz też

Informacje

Alokacja pamięci

free

funkcja malloc

odśmiecacz