Programiranje u C-u

Praktična vježba 11: Pokazivači & C struktura

1. Deklariraj pokazivač na C strukturu tipa date koji se zove dates.
        struct date *dates;
2. Ako gornja struktura podataka sadrži tri integer polja, dan, mjesec, godinu, pridruži vrijednost 10 polju day korištenjem dates pokazivača.
        dates->day = 10;
3. C struktura tipa machine sadrži dva polja,  integer koji se zove name, i pokazivač na char  memory. Pokaži kako definicija strukture izgleda.
        |-----------| <---------

        |           | name       |

        |-----------|            | machine

        |           | memory     |

        |-----------| <---------
4. Pokazivač zvan mpu641 tipa machine se deklarira. Koja je naredba da se pridruži vrijednost NULL polju memory.
        mpu641->memory = (char *) NULL;
5. Pridruži adresu niza znakova CPUtype polju  memory korištenjem pokazivača mpu641.
        mpu641->memory = CPUtype;
6. Pridruži vrijednost 10 polju name korištenjem pokazivača mpu641.
        mpu641->name = 10;
7. Pokazivač na C strukturu times tipa time (koji ima tri polja, sve pokazivače na integer, na day, month i year redom) je deklariran. Uporabom pokazivača times, pridruži polju  day vrijednost 10.
        *(times->day) = 10;
8. Niz pokazivača (10 elemenata)  tipa time (detaljnije objašnen pod ' 7'.), nazvanih sample se deklarira. Pridruži polju month koji je treći element niza vrijednost 12.
        *(sample[2]->month) = 12;

#include <stdio.h>

struct machine {
   int name;
   char *memory;
};

struct machine p1, *mpu641;

main()
{
   p1.name = 3;
   p1.memory = "hello";
   mpu641 = &p1;
   printf("ime = %d\n", mpu641->name );
   printf("memory = %s\n", mpu641->memory );

   mpu641->name = 10;
   mpu641->memory = (char *) NULL;
   printf("ime = %d\n", mpu641->name );
   printf("memory = %s\n", mpu641->memory );
}

#include <stdio.h>

struct time {
   int *day;
   int *month;
   int *year;
};

struct time t1, *times;

main()
{
   int d=5, m=12, y=1995;

   t1.day = &d;
   t1.month = &m;
   t1.year = &y;

   printf("dan:mjesec:godina = %d:%d:%d\n", *t1.day, *t1.month, *t1.year );

   times = &t1;
   *(times->day) = 10;

   printf("dan:mjesec:godina  = %d:%d:%d\n", *t1.day, *t1.month, *t1.year );
}

 ©Copyright B Brown. 1984-1998. All rights reserved.