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, and _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 łącz).
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.