#include <stdio.h>
#include <stdlib.h>

int A,B;
double X,Y;

int VetorI[10];
double VetorD[10];

int *PtrI;
double *PtrD;

int main(int argc, char *argv[])
{
  int *pti;
    
  printf ("\n\n");
  printf (">> Testes com Ponteiros <<"); 
  printf ("\n\n");
  
  
  /* Aloca 2 vetores de 10 elementos cada          */
  /* PtrI  um vetor de Inteiroe e PtrD de Doubles */
  printf ("Valor inicial do Ponteiro PtrI = %p\n",PtrI);
  printf ("Valor inicial do Ponteiro PtrD = %p\n",PtrD);
  PtrI = (int *)calloc(10, sizeof(int));
  PtrD = (double *)calloc(10, sizeof(double));
  printf ("Valor apos calloc do Ponteiro PtrI = %p\n",PtrI);
  printf ("Valor apos calloc do Ponteiro PtrD = %p\n",PtrD);
  
  printf ("\n");
  
  /* Inicializa os elmentos [0] e [1] dos vetores estticos */
  VetorI[0]=255;
  VetorI[1]=1;
  VetorI[9]=15;
  VetorD[0]=1.0;
  VetorD[9]=2.0;
  
  /* Inicializa os elementos [0] e [1] dos vetores dinmicos */
  PtrI[0]=255;
  PtrI[1]=1;
  PtrI[9]=15;
  PtrD[0]=1.0;
  PtrD[9]=2.0;
  
  /* Exibe os elementos [0] e  [1] do vetor dinmico de Ints */
  printf ("Valores atribuidos: 255 e 1 \n");
  printf("PtrI[0] = %d\n",PtrI[0]);
  printf("PtrI[1] = %d\n",PtrI[1]);
  
  /* Manipula os dados do vetor dinmico usando ponteiros */
  pti=PtrI;
  *pti=0;
  pti++;
  *pti=65535;
  
  /* Exibe como ficaram os dados do vetor dinmico de Ints */
  printf ("Valores modificados: 0 e 65535 \n");
  printf("PtrI[0] = %d\n",PtrI[0]);
  printf("PtrI[1] = %d\n",PtrI[1]);
  
  printf("\n");
  
  /* Exibe os elementos [0] e  [1] do vetor esttico de Ints */
  printf ("Valores atribuidos: 255 e 1 \n");
  printf("VetorI[0] = %d\n",VetorI[0]);
  printf("VetorI[1] = %d\n",VetorI[1]);
  
  /* Manipula os dados do vetor esttico usando ponteiros */
  pti=VetorI;
  *pti=0;
  pti++;
  *pti=65535;
  
  /* Exibe como ficaram os dados do vetor esttico de Ints */
  printf ("Valores modificados: 0 e 65535 \n");
  printf("VetorI[0] = %d\n",VetorI[0]);
  printf("VetorI[1] = %d\n",VetorI[1]);
  
  /* Termina o programa */
  printf("\n\n");
  system("PAUSE");	
  return 0;
}
