Esta página foi útil?
Seus comentários sobre este conteúdo são importantes. Queremos saber sua opinião.
Comentários adicionais?
1500 caracteres restantes
Exportar (0) Imprimir
Expandir Tudo
CRI
div
EOF
ler
Expandir Minimizar
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

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:
© 2015 Microsoft