Sdílet prostřednictvím


calloc

Matice v paměti přidělí s prvky inicializovat 0.

void *calloc( 
   size_t num,
   size_t size 
);

Parametry

  • num
    Počet prvků.

  • size
    Délka v bajtech každý prvek.

Vrácená hodnota

callocVrací ukazatel na přidělené místo.Místa odkazuje vrácená hodnota je zaručena vhodně zarovnání pro skladování jakýkoli typ objektu.Získání ukazatele typu než void, použijte typ odevzdaných na vrácenou hodnotu.

Poznámky

calloc Funkce vyhrazuje úložný prostor pro pole num prvky, každá délka size bajtů.Každý prvek je inicializován 0.

callocNastaví errno na ENOMEM selhání přidělení paměti nebo množství paměti požadované přesahuje _HEAP_MAXREQ.Informace o této a dalších chybové kódy, Kód chyby, _doserrno, _sys_errlist a _sys_nerr.

callocvolání malloc pro použití C++ _set_new_mode funkce nastavit nový režim zpracování.Nový režim zpracování označuje, zda při selhání, malloc k volání rutiny nové nastaveném _set_new_handler.Ve výchozím nastavení malloc nemůže volat nové rutiny při selhání přidělení paměti.Toto výchozí chování můžete změnit tak, aby, když calloc selhání přidělení paměti, malloc volání rutiny nové stejným způsobem, že new operátor nemá selže z téhož důvodu.Chcete-li přepsat výchozí nastavení volání

_set_new_mode(1)

brzy v programu nebo propojení s NEWMODE.OBJ (see Možnosti propojení).

Aplikace propojen s ladicí verzi c knihoven run-time calloc převede na _calloc_dbg.Další informace o způsobu je během ladění procesu správy haldy, viz The CRT ladění haldy.

callocje označena __declspec(noalias) a __declspec(restrict), což znamená, že funkce je zaručena upravit globální proměnné, vrácený ukazatel není s aliasem.Další informace naleznete v noalias a omezit.

Požadavky

Rutina

Požadované záhlaví

calloc

<stdlib.h> a <malloc.h>

Další informace o kompatibilitě, viz Compatibility v úvodu.

Příklad

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

Ekvivalent v rozhraní .NET Framework

Nelze použít Použijte volání funkce standardní C, PInvoke. Další informace naleznete v tématu Příklady vyvolat platformu.

Viz také

Referenční dokumentace

Přidělení paměti

free

MALLOC

realloc