Encontre o erro em cada um dos segmentos de programa a seguir. Se o erro puder ser corrigido, explique como fazê-lo.

  1. Int *number;
  2. Printf( “%d\n”, *number);

  3. float *realPtr;
  4. long *integerPtr;

    integerPtr = realPtr

  5. int * x, y;
  6. x = y;

  7. char s[] = “este é um array de caracteres”;
  8. int count;

    for ( ; *s != ‘\0’; s++)

    printf( “%c “, *s );

  9. short *numPtr, result;
  10. void *genericPtr = numPtr;

    result = *genericPtr + 7;

  11. float x = 19.34;
  12. float xPtr = &x;

    printf( “%f\n”, xPtr );

  13. char *s;

printf( “%s\n”, s );

Passo 1

E aí meus queridos!! Tudo bem com vocês??

Nessa questão vamos falar valar sobre erros que podemos encontrar ao declarar um ponteiro!

Na primeira questão, podemos ver a falta de uma variável com valores definidos para o ponteiro *number adquirir um endereço de memória. Há também a falta de inicialização do mesmo.

Vamos ver como podemos corrigir?

Podemos corrigi-los criando a variável número e inicializando-a com um valor, e definindo o ponteiro com o endereço da variável criada.

Passo 2

Essa aqui temos a tentativa de conversão de um ponteiro do tipo Float para um tipo Long.

Lembre-se: Ponteiro só podem ser convertidos e atribuído valores para si se forem do mesmo tipo.

Então se trocarmos o tipo long para float no ponteiro *integerPtr o nosso código funcionará bem certinho!!

Passo 3

Nessa questão temos a declaração do ponteiro x, o * que atribui a variável como ponteiro não está ligado a variável, tendo um espaço entre eles e ao atribuir o y ao ponteiro não existe o e-comercial (&).

Podemos corrigir assim:

Ao tirarmos o espaço do asterisco e do x e acrescentarmos o e-comercial & ao y na atribuição, nosso código poderá funcionar!

Passo 4

Nesse segmento não possui as chaves{} no loop do tipo for.

Então se colocarmos as chaves...

Assim o nosso código funciona perfeitamente!

Passo 5

Não é possível converter um ponteiro do tipo void em short na atribuição.

Então precisaremos trocar o tipo void para short no ponteiro *genericPtr.

Passo 6

Nessa questão faltou atribuir a variável xPtr como ponteiro já que a mesma aponta para outra variável. Se colocarmos o asterisco * antes da variável, podemos resolver o problema.

Veja como:

Passo 7

O ponteiro s está declarado com o tipo char (caractere), porém está sendo imprimido como string %s. Se trocarmos o %s (string) por %c (caractere), ficaria assim:

Ufa....terminamos por aqui!! Bora recarregar as energias e ir pra próxima!! ;-)

Resposta

Ei, a resposta está no passo a passo :)