„Dinamikus adatszerkezetek tutorial” változatai közötti eltérés
| 39. sor: | 39. sor: | ||
<pre> | <pre> | ||
int x; | int x; | ||
int *px = &x; | int *px = &x; // itt a 'px' az 'x' változó címét veszi fel | ||
int *mp = (int *) malloc ( sizeof(int)*5 ); / | int *mp = (int *) malloc ( sizeof(int)*5 ); // itt kértünk egy olyan memóriaterületet, ahol elfér 5 int. Ennek a címét kapjuk vissza. | ||
int **pp = ∓ | int **pp = ∓ // igen, a pointerre mutató pointer... Értéke egy olyan memóriacím, ahol elfér egy pointer. | ||
/ | |||
</pre> | </pre> | ||
| 53. sor: | 52. sor: | ||
<pre> | <pre> | ||
int x= ... ; | int x= ... ; | ||
mp = mp + x; /* FONTOS! az mp-ben tárolt memóriacím nem x-szel fog növekedni, hanem x * sizeof(*mp)-vel, azaz a mutatott típus méretével. */ | mp = mp + x; /* FONTOS! az mp-ben tárolt memóriacím nem x-szel fog növekedni, hanem x * sizeof(*mp)-vel, azaz a mutatott típus méretével. */ | ||
mp++; | mp++; /* a pointer tipusa int *, tehát az érték sizeof(int)-tel fog növekedni. | ||
Hasznos, ha egy dinamikus tömbben a következő elemre akarunk mutatni. */ | |||
char *d= ... ; | char *d= ... ; | ||
d++; /* a következő karakterre fog mutatni */ | d++; /* a következő karakterre fog mutatni */ | ||
d--; /* ugyanez, csak visszafelé */ | d--; /* ugyanez, csak visszafelé */ | ||
</pre> | </pre> | ||
| 67. sor: | 67. sor: | ||
<pre> | <pre> | ||
int a=2006 , b; | int a=2006 , b; | ||
int *p=&a; | int *p=&a; // ilyenkor 'p' mutat 'a'-ra | ||
int b=(*p); // 'b' = a 'p' által mutatott címen lévő érték (2006). | int b=(*p); // 'b' = a 'p' által mutatott címen lévő érték (2006). | ||
(*p)=26; | (*p)=26; // a 'p' által mutatott címre beírunk 26-ot. | ||
</pre> | </pre> | ||