5.  Pointer na void, pretypovanie

5.3  Precvičme si

  Prečo nemôžeme na pointer deklarovaný ako void *p; použiť operátor dereferencie?

[Riešenie]

problem.gif  Napíšte funkciu, ktorá ako parametre vezme dva void pointery a dĺžku v bajtoch a porovná, či sú úseky pamäte danej dĺžky začínajúce na daných adresách rovnaké (čo sa týka obsahu príslušných pamäťových miest).

[Riešenie]

  Nájdite a opravte chybu v nasledujúcom programe:

int main(void)
{
   int x;
   int *y;
   void *z;
   x = 500;
   y = &x;
   z = (void*)y;
   *z = 600;
   printf("%d\n", x);
   return(0);
}

[Riešenie]

  Nájdite a opravte chybu v nasledujúcom programe:

int main(void)
{
   int a, b;
   double d, e;
   void* v[10];
   v[0] = &a;
   v[1] = &d; 
   v[2] = &b;
   v[3] = &e;
   int x = *((int*)v[0]);
   double w = *((double*)v[1]); 
   int y = *((int*)v[1]);
   return(0);
}

[Riešenie]