Computação Múltipla Escolha

A linguagem C é conhecida por sua eficiência e controle sobre a memória do sistema. Um estudante está aprendendo sobre alocação de memória e se pergunta como pode alocar memória dinamicamente em seu programa. Qual função em C é usada para alocar memória dinamicamente?

A linguagem C é conhecida por sua eficiência e controle sobre a memória do sistema. Um estudante está aprendendo sobre alocação de memória e se pergunta como pode alocar memória dinamicamente em seu programa.

Qual função em C é usada para alocar memória dinamicamente?

  1. malloc().
  2. realloc().
  3. calloc().
  4. free().
  5. alloc().

Resolução completa

Explicação passo a passo

A
Alternativa A

Alternativa A - malloc().

Análise da Questão

A questão aborda conceitos fundamentais da linguagem de programação C, especificamente o gerenciamento de memória dinâmica. Para responder corretamente, é necessário distinguir as funções da biblioteca padrão <stdlib.h> responsáveis por gerenciar o heap (memória dinâmica).

Conceito de Alocação Dinâmica

A alocação dinâmica permite que o programa reserve espaço na memória durante a execução, e não apenas durante a compilação (como ocorre com variáveis locais ou globais estáticas). Isso é feito através de funções específicas que solicitam blocos de memória ao sistema operacional.

Análise das Funções Listadas

Para identificar a resposta correta, vamos examinar o papel de cada função apresentada nas alternativas:

  • malloc(size_t size): Significa Memory ALLOCation. É a função padrão e mais utilizada para reservar um bloco contíguo de memória de um determinado tamanho. Ela retorna um ponteiro para o início do bloco ou NULL se falhar.
  • **free(void *ptr): Responsável por liberar** memória que foi anteriormente alocada. Ela não aloca memória; ela a devolve ao sistema.
  • calloc(size_t num, size_t size): Aloca memória para um array de num elementos de size bytes cada, mas inicializa todos os bits a zero. Embora seja uma forma de alocação, o foco dela é a inicialização segura de arrays.
  • **realloc(void *ptr, size_t new_size): Serve para redimensionar** um bloco de memória já existente. Não é usada para a primeira alocação.
  • alloc(): Esta função não existe na linguagem C padrão. É um distrator comum.

Por que a Alternativa A é a Correta?

Embora calloc também realize uma alocação, a função malloc() é a referência primária para a solicitação de memória bruta. Quando um curso introdutório pergunta sobre "alocar memória dinamicamente" de forma genérica, a intenção é apontar para a função base que faz esse pedido ao sistema.

FunçãoAção PrincipalInicialização
malloc()Aloca novo blocoConteúdo indeterminado (lixo)
calloc()Aloca novo bloco (array)Zeros (0)
realloc()Redimensiona bloco antigoConteúdo preservado (se possível)
free()Libera blocoN/A

Portanto, a função essencial e direta para a alocação dinâmica é a malloc().

Alternativa A.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Computação

Ver mais Computação resolvidas

Tem outra questão de Computação?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.