Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

malloc

Aloca blocos de memória.

void *malloc(
   size_t size 
);

size

Bytes para alocar.

malloc Retorna um ponteiro nulo para o espaço alocado ou NULL se não houver memória suficiente disponível. Para retornar um ponteiro para um tipo diferente de void, use um tipo de projeção no valor de retorno. O espaço de armazenamento apontado pelo valor de retorno é garantido ser devidamente alinhado para o armazenamento de qualquer tipo de objeto. Se o tamanho é 0, malloc aloca um item de comprimento zero no heap e retorna um ponteiro válido para esse item. Verifique sempre o retorno do malloc, mesmo que a quantidade de memória solicitada é pequena.

O malloc função aloca um bloco de memória de pelo menos size bytes. O bloco pode ser maior que size bytes por causa do espaço necessário para o alinhamento e a manutenção de informações.

malloc define errno para ENOMEM se uma alocação de memória falhar ou se a quantidade de memória solicitada excede _HEAP_MAXREQ. Para obter informações sobre este e outros códigos de erro, consulte errno, _doserrno, _sys_errlist e _sys_nerr.

O código de inicialização usa malloc para alocar o armazenamento para o _environ, envp, e argv variáveis. As seguintes funções e suas contrapartes de caractere largo também chamam malloc:

O C++ _set_new_mode função define o novo modo de manipulador para malloc. O novo modo de manipulador indica se deve, em caso de falha, malloc é chamar a rotina manipuladora de novo conforme definido por _set_new_handler. Por padrão, malloc não chama a rotina manipuladora de novo em caso de falha ao alocar memória. Você pode substituir esse comportamento padrão para que, quando malloc Falha ao alocar memória, malloc chama a rotina manipuladora de novo na mesma maneira que o new operador oferece quando falhar pelo mesmo motivo. Para substituir o padrão, chamar.

_set_new_mode(1)

no início do seu programa, ou o vínculo com o NEWMODE.OBJ (see Opções de link).

Quando o aplicativo está vinculado com uma versão de depuração das bibliotecas de tempo de execução C, malloc resolve para _malloc_dbg. Para obter mais informações sobre como a pilha é gerenciada durante o processo de depuração, consulte A pilha de depuração CRT.

malloc está marcado como __declspec(noalias) e __declspec(restrict), que significa que a função é garantida que não modificar variáveis globais, e que o ponteiro retornado não é com alias. Para obter mais informações, consulte noalias e restringir.

Rotina

Cabeçalho necessário

malloc

<stdlib.h> e <malloc.h>

Para obter informações adicionais de compatibilidade, consulte compatibilidade na introdução.

Bibliotecas

Todas as versões da bibliotecas de tempo de execução c.

// crt_malloc.c
// This program allocates memory with
// malloc, then frees the memory with free.
 

#include <stdlib.h>   // For _MAX_PATH definition
#include <stdio.h>
#include <malloc.h>

int main( void )
{
   char *string;

   // Allocate space for a path name
   string = malloc( _MAX_PATH );

   // In a C++ file, explicitly cast malloc's return.  For example, 
   // string = (char *)malloc( _MAX_PATH );

   if( string == NULL )
      printf( "Insufficient memory available\n" );
   else
   {
      printf( "Memory space allocated for path name\n" );
      free( string );
      printf( "Memory freed\n" );
   }
}
Espaço de memória alocado para o nome do caminho
Memória liberada

Não aplicável. Para chamar a função c padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Contribuições da comunidade

ADICIONAR
Mostrar: