====== 11a. Příklady v C ======
#include
#include
void tisk_pole (int * a, int velikost);
int main ()
{
int a[2]; // neinicializovane pole
int b[9] = {0};
int c[] = {1, 2, 3, 4, 5};
int d[] = {[100] = 10};
int e[10] = {[4] = 10, [9] = 33};
for (int i = 0; i < sizeof(e)/sizeof(int); i++)
printf("%i ", e[i]);
printf("\n");
// ukazatel
int x = 10, x1 = 20;
printf("%p %p\n", &x, &x1);
int * y = &x; // ukazatel y obsahuje adresu promenne x
*(y+1) = 12; // do pameti, jejiz adresu mam v y, zapisu 12
printf("x = %i\n", x);
printf("x1 = %i\n", x1);
for (int i = 0; i < sizeof(e)/sizeof(int); i++)
printf("%i ", *(e+1));
printf("\n");
int x2 = 20;
int f[x2];
int * g = malloc(4*sizeof(int));
int * h = calloc(4, sizeof(int)); // nuluje odkazovanou pamet
h = realloc (h, 5*sizeof(int));
tisk_pole (c, 5);
printf("%lu %lu\n", sizeof(g), sizeof(h));
free(g);
free(h);
return 0;
}
void tisk_pole (int * a, int velikost)
{
for (int i = 0; i < velikost; i++)
printf("%i ", a[i]);
printf("\n");
}
#include
struct osoba
{
int vyska; // vyska v cm
float vaha; // vaha v kg
};
typedef struct
{
float re, im;
} komplex;
void komplex_tisk (komplex a)
{
printf("%.2f%+.2fi\n", a.re, a.im);
}
komplex komplex_soucet (komplex a, komplex b)
{
komplex tmp;
tmp.re = a.re + b.re; tmp.im = a.im + b.im;
return tmp;
}
void tisk_osoby (struct osoba x)
{
printf ("josef: %icm, %.2fkg\n", x.vyska, x.vaha);
}
int main()
{
struct osoba josef;
josef.vyska = 180; josef.vaha = 78.5; tisk_osoby (josef);
komplex x; x.re = 3.14; x.im = 3.5;
komplex x1; x1.re = -6.0; x1.im = 8.3;
komplex_tisk (komplex_soucet (x, x1));
typedef int i;
i a = 10;
printf("a = %i\n", a);
return 0;
}