/*
* Ukazatel, dynamické proměnné, operátor sizeof()
*/
#include <stdio.h>
#include <stdlib.h>
int i;
int *p_i; // p_i je ukazatel na int
short n, *pa, *pb, *pc;
void *p; // p je netypovy ukazatel
int main(void) {
i = 15;
p_i = &i; // &i ... adresa promenne i
printf("i=%d *p_i=%d \n", i,*p_i);
printf("sizeof(int) = %d \n", sizeof(int));
printf("sizeof(short) = %d \n", sizeof(short));
printf("sizeof(long) = %d \n", sizeof(long));
printf("sizeof(long long) = %d \n", sizeof(long long));
printf("sizeof(n) = %d \n", sizeof(n));
printf("sizeof(pa) = %d \n", sizeof(pa));
printf("sizeof(*pa) = %d \n", sizeof(*pa));
pa = &n;
pb = malloc(sizeof(short)); // syntakticky presne: pb = (short *)malloc(sizeof(short));
pc = malloc(sizeof(short));
printf("pa ukazuje na adresu %p \n", pa);
printf("pb ukazuje na adresu %p \n", pb);
printf("pc ukazuje na adresu %p \n", pc);
*pa = 1;
*pb = 2;
*pc = *pa + *pb;
printf("vysledek = %d\n", *pc);
free(pb); // syntakticky presne: free((void *)pb);
free(pc);
return 0;
}