Programozás C-készítő

Dinamikus memória kiosztás keresztül a könyvtár funkciója malloc az alábbi lépéseket.

1. befogadás a programban malloc header fájlt. h irányelv # include .

p = (int *) malloc (száma tömb * sizeof (int) elemek);

Ahelyett, hogy int lehet helyettesíteni bármilyen szabványos vagy az új típusú programozó.

4. Ellenőrzés a tényleges memória kiosztás. Ha a memória kiosztás a helyes összeget lehetetlen, malloc függvény visszatér az eredménye nulla NULL pointer. értékének megfelelő hamis. Ha a memória kiosztás történik, továbbra is a program végrehajtása, ha nem, akkor kap belőle a megfelelő diagnózis kevés a memória. például:

if (! p) az üzenetet; mást folytatása;

5. felszabadítása után munka vele. Ehhez hívjuk a f rec funkciót, és használja a mutatót érvként:

A leggyakoribb oka a „befagyasztása” a számítógép, ha dolgozik, dinamikusan allokált memória a mismatch utasítás malloc és free (mindkét utasítást kell használni ugyanazt index) vagy nincs elegendő szabad memória.

Példaként tekintsük a bemenet / kimenet dinamikus dimenziós tömb tetszőleges hosszúságú által meghatározott billentyűzetet.

cout <> N; // bemeneti tömb mérete

massiv = (int *) malloc (n * sizeof (int)); // kiválasztás dinam.pamyati

if (! tömör) // tény-ellenőrző memóriafoglalási

cout <

for (i = 0; i> Massiv [i]; // bemeneti tömb

for (i = 0; i

szabad (massiv); // szabad memória

Ebben a programban, csak a mutató elosztásához használt dinamikus memóriát. Következik fellebbezést tömb elemei révén a tömb neve megegyezik a neve az index.

Dinamikus memória kiosztás is használhatja calloc () függvényt. Ellentétben malloc calloc funkció mellett memóriakiosztás alatti terület a tömb másik tömb elemeit inicializálja a nullához.

Attól függően, hogy a változat C ++ nagy dinamikus memória fragmentumok farmalloc alkalmazási funkciók (), farcalloc (), farcoreleft () és farfree ().

Kapcsolódó cikkek