Buscar

Respostas Lista de exercicio 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Lab. de Algoritmos e Estruturas de Dados 2 
Lista de Exercícios 1 – Ponteiros 
Daniel Rezende Fonseca 
 
 
 
1) a) Este operador ”&“ serve para recolher o endereço onde uma variável está 
situada na memoria 
 
Este operador “*” serve para ir ate o endereço podendo alterar o valor contido 
no mesmo e também serve para declarar um ponteiro. 
 
b) p++ = Este comando está incrementando mais 1 no endereço contido no 
ponteiro p. 
 
(*p)++ = Este comando irá incrementar na variável da qual o ponteiro está 
apontando( Guardando o endereço da variável). 
 
*(p++) = Este comando incrementa mais 1 no endereço contido no ponteiro e após 
incrementar, já acessa o novo local no qual o endereço está apontando. 
 
 
2) X – 25 Y – 50, 
X – 14 Y – 51, 
Não é possível, pois “pt” carrega o endereço das variáveis e o endereço é dinâmico, 
portanto é necessário executar o programa para saber qual o endereço na hora 
daquela execução. 
 
 
3) Na passagem por valor, como o próprio nome diz, uma expressão pode ser 
utilizada na chamada. O valor da expressão é calculado, e o valor resultante é 
passado para a execução da função. 
Na passagem por referência, o endereço de uma variável deve ser passado na 
chamada da função. Dessa forma, a função pode modificar a variável diretamente, 
o que em geral não é recomendável, mas há situações onde esse recurso é 
necessário, por exemplo, para a criação de funções que devolvem mais de um 
valor. 
 
4) 
 
 
 
 
 
 
5) #include<stdio.h> 
void copia (char *pt1 ,char *pt2){ 
 while (*pt2){ 
 *pt1t = *pt2; 
 pt2 ++; 
 pt1++; 
 } 
 *pt1='\0'; 
} 
 
 
 
 
6) #include<stdio.h> 
void concatena (char *pt1, char *pt2){ 
 while (*pt1){ 
 pt1++ ; 
 } 
 while(*pt2){ 
 *pt1 = *pt2; 
 pt1++; 
 pt2++; 
 } 
 *pt1 = '\0'; 
 } 
 
 
7) 
 
 
 
 
8) A alocação dinâmica é o processo que aloca memória em tempo de execução. Ela é 
utilizada quando não se sabe ao certo quanto de memória será necessário para o 
armazenamento das informações. A vantagem de utilizar a alocação dinâmica é de 
não precisar prever o tamanho de espaço que você irá utilizar. Existem funções para 
auxiliar esta alocação como por exemplo : 
Malloc 
Calloc 
Realloc 
Free 
 
 
9) Este programa pede ao usuário que digite o numero de linha e coluna, e após digitado os 
valores possuem dois malloc’s onde alocam a memoria do mesmo tamanho que a linha e 
coluna digitado anteriormente e fechando o programa possuem dois free’s onde é 
desalocado toda memória alocada anteriormente.

Outros materiais