ExerciciosCap3

2615 palavras 11 páginas
Resolução dos Exercícios do Capítulo III
1. Ponteiros são causadores potenciais de erros em programação. Dê exemplos, com trechos de código em C, de erros causados por ponteiros que provocam violação dos sistemas de tipos da linguagem, ocorrência de objetos pendentes e ocorrência de referências pendentes.
Violação dos sistemas de tipos da linguagem: int a = 33; float b = 3.12; int *t = &a; t++; // t não aponta mais para um int
*t = 10;
// vai alterar o valor de b
Ocorrência de objetos pendentes: int *d, *p; d = (int *)malloc(20*sizeof(int)); p =(int *)malloc(10*sizeof(int)); d=p; // área alocada inicialemente para d é perdida
Ocorrência de referência pendentes: int *a, *b; a =(int *)malloc(20*sizeof(int)); b = a; free(a); // b continua apontando para a área de memória desalocada.

2. Uma diferença significativa entre a definição de tipos primitivos cm C++ e JAVA se refere ao intervalo de valores de cada tipo. Enquanto em JAVA os intervalos foram fixados na definição da LP, em C++ é a implementação do compilador que define esses intervalos. Compare estas duas abordagens, justificando a opção de cada uma dessas linguagens.
A linguagem C deixa para os implementadores dos compiladores a definição dos intervalos dos tipos. Essa postura diminui a portabilidade dos programas, porém aumenta a sua eficiência. A eficiência é maior porque permite aos implementadores dos compiladores selecionar os intervalos de tipos de modo a utilizar melhor os recursos de hardware. Já na linguagem JAVA os intervalos foram fixados na definição da LP pois ela prioriza a portabilidade de seus programas em detrimento da eficiência de execução. Isso ocorre porque a definição dos intervalos de valores dos tipos no projeto da linguagem implica na necessidade de emulação em software das operações sobre esses tipos em alguns tipos de computadores.

3. Em geral, o uso de índice fora dos limites do vetor só pode ser verificado em tempo de execução. Algumas LPs, como JAVA, PASCAL e MODULA-2 fazem a

Relacionados