O seguinte trecho de código cria um vetor de números inteiros com 10 elementos:
int * v;
v = (int * ) malloc(10*sizeof(int));
Qual o significado da declaração int * v e v = (int * )malloc(10*sizeof(int)); :
a) O Comando v = (int * ) malloc(10*sizeof(int)); reserve espaço de memória da área livre e atribui endereço de variável int *v, que passa a armazenar o endereço inicial de uma área contínua de memória suficiente para conter 10 valores inteiros.
b) O Comando v = (int * ) malloc(10*sizeof(int)); reserve espaço de memória da área livre e atribui endereço de variável int *v, que passa a ser uma varíavel global ;
b) O Comando v = (int * ) malloc(10*sizeof(int)); armazena o endereço inicial de uma área contínua de memória suficiente para conter 10 valores inteiros e a declaração de variável int * v reserva espaço de memória da área livre para a alocação da variável.
c) O Comando v = (int * ) malloc(10*sizeof(int)); armazena o endereço inicial de uma área contínua de memória suficiente para conter 10 valores inteiros e a declaração de variável int * v podendo ser tratado como um vetor declarado estaticamente
d) O Comando v = (int * ) malloc(10*sizeof(int)); reserve espaço de memória da área livre e atribui endereço de variável int *v, que responde com um mensagem de tratamento printf v==NULL
e) N.D.A.
Fonte:
http://www.tecgraf.puc-rio.br/~mgattass/ed/material/ApresentacoesEmPDF/ed05-Vetores.pdf
Waldemar Celes, Renato Cerqueira, José Lucas Rangel,
Introdução a Estruturas de Dados, Editora Campus
(2004)
Capítulo 5 – Vetores e alocação dinâmica
Assinar:
Postar comentários (Atom)
2 comentários:
Resposta Correta: letra a
A instrução "int= *v" cria uma variável vque passa a abrigar um endereço que passa a ser definido pela linha de código seguinte, "v = (int * ) malloc(10*sizeof(int));", ou seja, o ponteiro v passa a apontar para o endereço inicial de um espaço de memória que irá conter 10 valores inteiros.
Amigo, a sua questão tem duas "b"... O.o'
Postar um comentário