Logo Passei Direto
Buscar
De acordo com Boente (2003), "a alocação dinâmica de memória em tempo de execução é realizada na linguagem C, por meio de ponteiros ou apontadores, utilizando, para isso, a função malloc( )".
Neste contexto, analise o código-fonte a seguir, escrito em linguagem C, e marque a alternativa correta.
a) Imprime o valor do próximo endereço dinâmico de memória em que *ptr é igual a 3.
b) Imprime o conteúdo de dado 3, armazenado no apontador *ptr.
c) Permite que o apontador *ptr aponte para o próximo endereço de memória que está contido na posição 3.
d) Permite que o apontador *ptr aponte para a próxima informação que está contida na posição 3 de memória.
e) Não executa função alguma, pois existe um erro na linha de código ptr = ( int * ) malloc( sizeof( int ));.
User badge image
Questões para o Sucesso

ontem

Respostas

User badge image

Ed Verified user icon

ontem

Para analisar a questão, precisamos entender o que a função `malloc()` faz e como os ponteiros funcionam em C. A função `malloc()` é utilizada para alocar memória dinamicamente e retorna um ponteiro para o bloco de memória alocado. Vamos analisar as alternativas: a) Imprime o valor do próximo endereço dinâmico de memória em que *ptr é igual a 3. - Esta opção não está correta, pois `*ptr` não é igual a 3, a menos que você tenha atribuído esse valor a ele. b) Imprime o conteúdo de dado 3, armazenado no apontador *ptr. - Esta opção pode ser confusa, pois `*ptr` deve ser inicializado com um valor antes de imprimir. Se `ptr` foi alocado mas não inicializado, não terá o valor 3. c) Permite que o apontador *ptr aponte para o próximo endereço de memória que está contido na posição 3. - Esta opção não está correta, pois `ptr` não aponta para a posição 3, mas sim para o endereço de memória alocado. d) Permite que o apontador *ptr aponte para a próxima informação que está contida na posição 3 de memória. - Esta opção também não está correta, pois `ptr` não está apontando para uma "próxima informação" em uma posição específica. e) Não executa função alguma, pois existe um erro na linha de código ptr = ( int * ) malloc( sizeof( int )); - Esta opção é a mais correta, pois a linha de código apresentada está correta e não contém erro. Portanto, essa alternativa não é verdadeira. Diante da análise, a alternativa correta é: b) Imprime o conteúdo de dado 3, armazenado no apontador *ptr, desde que `*ptr` tenha sido atribuído corretamente antes da impressão. Se o código não atribui um valor a `*ptr`, a impressão pode resultar em um comportamento indefinido. Portanto, a resposta correta depende do contexto do código que não foi fornecido.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Essa pergunta também está no material:

Mais perguntas desse material

Mais conteúdos dessa disciplina