„Dinamikus adatszerkezetek tutorial” változatai közötti eltérés
| 17. sor: | 17. sor: | ||
<pre> | <pre> | ||
int a,b; | |||
float f; | |||
char *c; | |||
/* FONTOS! a pointer is statikus változó, értéke pedig egy memóriacím lehet. Később látni fogjuk. */ | |||
</pre> | </pre> | ||
| 30. sor: | 30. sor: | ||
<pre> | <pre> | ||
int *a; | |||
char *b; | |||
</pre> | </pre> | ||
| 38. sor: | 38. sor: | ||
Ha azonban helyes címet adunk neki, akkor használhatóak: | Ha azonban helyes címet adunk neki, akkor használhatóak: | ||
<pre> | <pre> | ||
int x; | |||
int *px = &x; // itt a 'px' az 'x' változó címét veszi fel. Ilyen komment nincs C89-ben, csak /* */. Ne használjátok prog1-en! | |||
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 = ∓ | |||
/* igen, a pointerre mutató pointer... Értéke egy olyan memóriacím, ahol elfér egy pointer. */ | |||
</pre> | </pre> | ||
| 52. sor: | 52. sor: | ||
<pre> | <pre> | ||
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++; /* 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= ... ; | |||
d++; /* a következő karakterre fog mutatni */ | |||
d--; /* ugyanez, csak visszafelé */ | |||
</pre> | </pre> | ||
| 66. sor: | 66. sor: | ||
<pre> | <pre> | ||
int a=2006 , b; | |||
int *p=&a; // ilyenkor 'p' mutat 'a'-ra | |||
int b=(*p); // 'b' = a 'p' által mutatott címen lévő érték (2006). | |||
(*p)=26; // a 'p' által mutatott címre beírunk 26-ot. | |||
</pre> | </pre> | ||
| 78. sor: | 78. sor: | ||
szokott okozni régebbi progrmoknál (itt egyébként épp a long ugyanakkora, mint egy pointer). Garantáltan működő viszont a következő: | szokott okozni régebbi progrmoknál (itt egyébként épp a long ugyanakkora, mint egy pointer). Garantáltan működő viszont a következő: | ||
<pre> | <pre> | ||
typedef union { | |||
int n; | |||
void* p; | |||
} int_and_ptr; | |||
</pre> | </pre> | ||