Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

Milyen funkciót tölt be,illetve milyen tulajdonsággal rendelkezik,emellett mit csinál a C program felületen a malloc ,illetve a ponterre mutató pointer ,azaz a **?

259
Sajnos nem nagyon értem őket,illetve a lényegüket sem ,hogy végülis mire jók..
Jelenleg 1 felhasználó nézi ezt a kérdést.
0
Felsőoktatás / Informatika

Válaszok

1
Ha azt írod egy szubrutin belsejében, hogy pl. 'int abc;' akkor azzal allokálsz (lefoglalsz) egy 4 byte-os memóriaterületet, aminek neve is van. Ez a memória viszont addig lézezik, amíg a szubrutin (illetve a blokk) belsejében vagy. amíg ott fut a program. Ha visszatér a program a szubrutinból, akkor automatikusan megszűnik a változó.

Ha malloc-kal allokálsz egy mondjuk 4 byte-os területet, akkor annak neve nem lesz, csak egy pointere, azon a pointeren keresztül tudod elérni név híján. Viszont ez a memória nem tűnik el akkor, amikor kilépsz a szurutin belsejéből, megmarad mindaddig, amíg free-vel fel nem szabadítod. Tehát alkalmas arra, hogy olyan adatokat tárolj ebben a memóriában, amit hosszú távon akarsz "életben tartani".

Pl. ha egy szövegszerkesztő programot írsz, ott maga a szöveg meg kell maradjon hosszan, azt ilyen alokált területen lehet pl. tartani. De nagyon sok más esetben is szükség van hosszú távon megmaradó memóriára.

A pointerre mutató pointer az egyszerűen egy olyan pointer, ami egy 8 bytes-os memóriaterületre mutat, amiben éppen "véletlenül" egy pointer van. Néha szükség van ilyenre is, de viszonylag ritkán.
0