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.gifNapíš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]