Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
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.