6 elads 2005 prilis 5 Struktrk nik j


![Struktúrák 2. Pl. struct szgep{char gyarto[50]; enum {intel, mips, motorola} proci; long memoria, disk; Struktúrák 2. Pl. struct szgep{char gyarto[50]; enum {intel, mips, motorola} proci; long memoria, disk;](https://slidetodoc.com/presentation_image_h2/f867f387c924c5b3a122c7518d8a9f16/image-3.jpg)



![Struktúrák 6. Struktúra tömb Deklarációja: struct szgep{. . . } gep[10]; Hivatkozás a mezőkre: Struktúrák 6. Struktúra tömb Deklarációja: struct szgep{. . . } gep[10]; Hivatkozás a mezőkre:](https://slidetodoc.com/presentation_image_h2/f867f387c924c5b3a122c7518d8a9f16/image-7.jpg)
![Struktúrák 7. Struktúra pointer tömb Deklarációja: struct szgep{. . . } gep[10], *p_str[6], sajat; Struktúrák 7. Struktúra pointer tömb Deklarációja: struct szgep{. . . } gep[10], *p_str[6], sajat;](https://slidetodoc.com/presentation_image_h2/f867f387c924c5b3a122c7518d8a9f16/image-8.jpg)

![Struktúrák 9. Önhivatkozó struktúrák struct elem {char nev[50]; . . struct elem *kovetkezo; }; Struktúrák 9. Önhivatkozó struktúrák struct elem {char nev[50]; . . struct elem *kovetkezo; };](https://slidetodoc.com/presentation_image_h2/f867f387c924c5b3a122c7518d8a9f16/image-10.jpg)










- Slides: 20

6. előadás (2005. április 5. ) • • Struktúrák Úniók Új adattípus definíálása Dinamikus memória foglalás 1

Struktúrák 1. Összetett adattípusok: – tömb, – struktúra, – unió. Struktúra deklarációja: struct struktnev {típus 1 név 1; típus 2 név 2; . . . }; struct struktnev változónév; 2
![Struktúrák 2 Pl struct szgepchar gyarto50 enum intel mips motorola proci long memoria disk Struktúrák 2. Pl. struct szgep{char gyarto[50]; enum {intel, mips, motorola} proci; long memoria, disk;](https://slidetodoc.com/presentation_image_h2/f867f387c924c5b3a122c7518d8a9f16/image-3.jpg)
Struktúrák 2. Pl. struct szgep{char gyarto[50]; enum {intel, mips, motorola} proci; long memoria, disk; enum {cga, vga, svga, egyeb} monit; }; Inicializálás: struct szgep sajat = {"Xcomp", intel, 64 L, 2000 L, svga}; 3

Struktúrák 3. Memóriabeli tárolása szóhatárra igazított: sizeof (struct struktnev) >= sizeof (típus 1)+sizeof (típus 2)+. . . + sizeof (típusn) 4

Struktúrák 4. Hivatkozás a struktúra mezőire: . pont operátor struct strukttip valtazon; valtazon. mezonev Pl. printf("n%s%d%ld%ld%d", sajat. gyarto, sajat. proci, . . . ); 5

Struktúrák 5. Struktúra pointer Deklarációja: struct szgep{. . . } szerver, *p_str; p_str = &szerver; Hivatkozás a mezőkre: p_str -> gyarto p_str -> proci /* char* */ /* enum */ 6
![Struktúrák 6 Struktúra tömb Deklarációja struct szgep gep10 Hivatkozás a mezőkre Struktúrák 6. Struktúra tömb Deklarációja: struct szgep{. . . } gep[10]; Hivatkozás a mezőkre:](https://slidetodoc.com/presentation_image_h2/f867f387c924c5b3a122c7518d8a9f16/image-7.jpg)
Struktúrák 6. Struktúra tömb Deklarációja: struct szgep{. . . } gep[10]; Hivatkozás a mezőkre: gep[0]. gyarto /* char* */ 7
![Struktúrák 7 Struktúra pointer tömb Deklarációja struct szgep gep10 pstr6 sajat Struktúrák 7. Struktúra pointer tömb Deklarációja: struct szgep{. . . } gep[10], *p_str[6], sajat;](https://slidetodoc.com/presentation_image_h2/f867f387c924c5b3a122c7518d8a9f16/image-8.jpg)
Struktúrák 7. Struktúra pointer tömb Deklarációja: struct szgep{. . . } gep[10], *p_str[6], sajat; Hivatkozás: p_str[0]=&sajat; p_str[1]=&gep[5]; p_str[0] -> proci p_str[1] -> gyarto 8

Struktúrák 8. Beágyazott struktúrák A struktúra mezőtípusa tetszőleges típus lehet. Pl. struct halozat{struct szgep csomopont; enum{tcpip, ipx, decnet} protokoll; int felhasznszam; }egyetem[100]; Hivatkozás: egyetem[2]. protokoll egyetem[1]. csomopont. proci 9
![Struktúrák 9 Önhivatkozó struktúrák struct elem char nev50 struct elem kovetkezo Struktúrák 9. Önhivatkozó struktúrák struct elem {char nev[50]; . . struct elem *kovetkezo; };](https://slidetodoc.com/presentation_image_h2/f867f387c924c5b3a122c7518d8a9f16/image-10.jpg)
Struktúrák 9. Önhivatkozó struktúrák struct elem {char nev[50]; . . struct elem *kovetkezo; }; Példa később: láncolt lista. 10

Struktúrák 10. Kölcsönösen egymásra hivatkozó struktúrák struct s 1 {int a, struct s 2 *p; }; struct s 2 {int a, struct s 1 *p; }; 11

Struktúrák 11. A struktúra mint függvény paraméter érték (verem!) és cím szerint is átadható. Függvény visszatérő értéke is lehet struktúra. 12

Úniók Lehetővé teszi ugyanannak a memóriaterületnek több, különböző hivatkozással való elérését (buffer, változó szerkezetű struktúra). Deklarációja: union megoszt{int i; long l; float f; double d} uvalt; Hivatkozás: uvalt. i uvalt. l /* integer */ /* long */ Az únió mérete: max(sizeof(int), sizeof(long), sizeof(float), sizeof(double)) 13

Különféle byte-folyam feldolgozás struct adatok {int a, b, c; double d; }; union buf{ char buffer [sizeof(struct adatok)]; struct adatok bin; }; double get_buffer () { union buf b; int i; for(i=0; i<sizeof(struct adatok); i++) b. buffer[i]=getbyte(); return b. bin. d; } 14

Változó szerkezetű struktúra 1. struct hallg{int evf, tankor; . . . }; struct okt{int tanszek, beosztas, vegzettseg, . . . }; struct polgar{ enum{oktato, hallgato}tipus; union{ struct hallg uh; struct okt ut; }ember; }egyetemi; 15

Változó szerkezetű struktúra 2. switch (egyetemi. tipus) {case oktato: printf("n%d%d%d", egyetemi. ember. ut. tanszek, egyetemi. ember. ut. beosztas, egyetemi. ember. ut. vegzettseg); break; case hallgato: printf("n%d%d", egyetemi. ember. uh. evf, egyetemi. ember. uh. tankor); } 16

Új adattípus definíálása Egyszerűbb írásmód, karbantartás, logikai adatfüggetlenség. typedef típusnév; /*ez nem deklaráció*/ typedef struct fegyver {char name[50]; int tarmeret, float kaliber; } tfegyver; /*ez egy adattipus*/ tfegyver pisztoly={"Uzi", 30, 7. 0}; tfegyver agyuk[60]; . . . agyuk[50]. kaliber=100; 17

Define vagy typedef (csapda!) #define CPOINTER char* CPOINTER a, b; --> char*a, b; typedef char* CPOINTER; CPOINTER a, b; --> char *a, *b; 18

Dinamikus memória kezelés Header: <stdlib. h> void *malloc(size_t meret) /*nem inicializál*/ void *calloc(size_t nobj, size_t meret) /*inicializál 0 byte-ra*/ Újrafoglalás: void *realloc(void* ptr, size_t meret) Visszatérő érték: a memória kezdő címe, vagy NULL Felszabadítás: void free(void*) 19

Dinamikus tömb allokálás struct elem *p; p=(struct elem *) malloc(elemszam*sizeof(struct elem)); if (p==(struct elem *) NULL) { perror("allokálási hiba"); exit(. . . ); }. . . p[i]. mezo 1=. . . 20
Elads crm
Public candy companies
Elads
Nik eusa
Organy kontroli legalności
Nik kutnaks
[email protected].
Users.nik.uni-obuda/kovacs.andras
Permenkes nomor 168 tahun 2005 mengatur tentang
The regulatory reform (fire safety) order 2005 summary
Visual studio 2005 team suite
Gizem memiç türkiye güzeli
One revolution is the same as: phy101
Sql server 2005 sp
Sql 2005 activity monitor
Ogle-2005-blg-390
National curriculum framework
2005
Umn apas report
Meci 2005
Random number generator