9. lecke

Kezdeni, hogy megvitassák a jellemzőit minden típusú memória.

statikus memóriát

Helyezzük egy statikus memória - van fenntartva idején a program indítását, és megjelent csak miután a program befejezi a munkáját.







Ahhoz, hogy a globális változók (bejelentett kívül minden blokk, különösen mielőtt megkezdődik az eljárás fő) és a statikus változók (előtte a típus, amely meghatározza a kulcsszó statikus. A változókat lehet bárhol, beleértve a szervezetben valamilyen funkciót, de hogy végezzen egy statikus változót a függvény maga specifikusan: megtartják értékek között a visszahívási funkció). A különbség a statikus és globális változók látható, amikor a program több fájlból áll: a globális változók készletét a kapcsolódó fájlok és statikus - csak fájl, ami már bejelentették.

nem ajánlott tartani a hossza a tárgy a statikus memóriában (pl tömbök).

Helyi memória (stack memória)

Feltéve, hogy a bejáratnál a program blokk felszabadult - a kilépő a blokk.

Ott esik deklarált változók egy blokkon belül (különösen a szervezet működését).

dinamikus memória

Lekötött és felszabadította - speciális utasítások (azaz a kezdeményezésére a fejlesztő ..). Ez lehetővé teszi, hogy a program során figyelemmel kíséri, és állítsuk be a használt memória mennyiségét, és ennek következtében olyan programokat képes kezelni nagy mennyiségű adat, elkerülve a korlátozásokat a fizikai memória a gép.

Hozzáférés a dinamikus memória csak akkor lehetséges jeleit, t. E. Nem lehet létrehozni a változókat, de akkor válasszuk ki azt a töredékek és kötődnek néhány támpontot.

A dinamikus memória

Memóriát használ az új üzemeltető. és megkönnyebbült - a delete operátor.

Egy olyan időszakban, amikor a dinamikus memóriát, meg kell vonni néhány mutatót a megfelelő típusú (elosztását jelzi a típusát és számát szükséges ilyen típusú sejteket).

Ha nem mentesíti a kupac, akkor lesz elfoglalva fel, ami nem elfogadható a program befejezése.

Elosztása során egy dinamikus változót (egy memória cella) azonnal megindítja az értéke:







Lehetőség van kiosztani több dinamikus memória sejtek, így a dinamikus tömb.

Ebből a célból, a mérete jelzi után zárójelben a típusát.

Törléséhez dinamikus tömb, és szabad a memória az üzemeltető által alkalmazott törli [].

Jobb létrehozása után egy dinamikus tömb automatikusan nullákkal töltjük fel (ellentétben a hagyományos álló vagy köteg).

A probléma akkor válik különösen akuttá, amikor az egész tömb elveszik a memóriában (nem vesz fel több helyet, mint a különálló változók).

Minden lépésnél a ciklus által létrehozott dinamikus tömb 100 elemek. Összesen hány ilyen tömbök jön létre 10, de csak az utolsó is, a memória fog megjelenni megjelenése után a sorozat. 9 tömbök továbbra is sok helyet foglalnak a memóriában, amíg a végén a program. 9 tömb elemei * 100 * 4 byte = 3600 byte az elveszett memória, amely nem lehet használni (akár ebben a program nem fut a többi).

Nagyon fontos, használata után a dinamikus memória emlékezni, hogy engedje el a megfelelő pillanatban!

  1. A program létre kell hozni egy dinamikus tömb 10 random egész számok a [0, 9], és megjeleníti a képernyőn. Minden dinamikus tömb mindig kell hagyni a memóriában, amint használtunk utoljára. Feltétlenül kövesse az időben rendbe megjelöli az egyes következő feladatokat.
  2. A program létre kell hoznia egy dinamikus tömb n véletlenszerű egész számok a [0, 9], és megjeleníti azt a képernyőn. a tömb mérete N kérik a felhasználó az elején a program.
  3. A program kell létrehozni a két tömb elemek véletlenszerűen tartományban [-25; 25], 10 elemek az egyes tömb, minden tömb kimenet jelenik meg külön sorban. Ezután a program célja, hogy hozzon létre egy dinamikus tömböt a megfelelő méretű és másolja az összes pozitív elemeit az első két. És az ebből eredő kiadási dinamikus tömb megjelenített sorokat.

Egy példa a munkaprogram a program:

  • A program létre kell hozni egy dinamikus tömb hét véletlen egész számok a [0, 9], és megjeleníti a képernyőn. Ha a tömb páros számok több volt, mint a páratlan, a tömb kell csökkenteni 2 elem végétől, vagy - a két elem az első. A végső tömb jelenik meg.

    Megjegyzés: lerövidíti a tömb - ez azt jelenti, ami egy módosított változatát, ne felejtsük el, hogy törölje az eredeti.

    Egy példa a munkaprogram a program:

  • A felhasználó beviszi a húr a billentyűzet (maximum string-hossz - 80 karakter). A programnak ki kell választani egy sor minden páros számok (nulla nekik tulajdonított), amennyiben ezek összhangban, és tedd az első dinamikus tömb, és minden páratlan szám, ha azok -, hogy őket a második dinamikus tömb. Ellenőrizze a két dinamikus tömb (ha voltak) a képernyőn.

    Egy példa a program (a második sorban a felhasználó bemenet):

  • A program létre kell hoznia egy dinamikus véletlen tömb 20 elemek tartományban [1, 9], és megjeleníti azt. Ezután a programot kell másolni a második dinamikus tömb elemei közül csak azokat az első tömb találkozott pontosan 2-szer (ha ilyen lesz), és a második tömb kimenet jelenik meg egy külön sorban, vagy jelenti be, hogy nem található olyan töltet elemet.



  • Kapcsolódó cikkek