Programarea cu c constructor

Alocarea dinamică a memoriei utilizând funcția bibliotecă malloc constă în următorii pași.

1. Includerea fișierului header malloc în program. h directiva #include .







p = (int *) malloc (numărul de elemente de matrice * sizeof (int));

În loc de int, orice tip standard sau programat poate fi înlocuit.

4. Verificați alocarea memoriei. În cazul în care alocarea de memorie în cantitatea potrivită este imposibilă, funcția malloc se întoarce ca rezultatul său un pointer NULL zero. valoarea corespunzătoare valorii este falsă. În cazul în care alocarea de memorie se face, vom continua executarea programului, dacă nu, ieși din ea cu diagnosticul adecvat al lipsei de memorie. exemplu:

dacă (! p) mesajul, ieșiți; continuare;

5. Eliberarea memoriei după terminarea lucrului cu ea. Pentru a face acest lucru, apelați funcția f și utilizați pointerul ca argument:

Cea mai frecventă cauză de „înghețare“ a calculatorului atunci când se lucrează cu memorie alocată dinamic este malloc de instrucțiuni nepotrivire și gratuit (în ambele instrucțiuni trebuie să utilizeze același indice) sau memoria liberă insuficientă.







De exemplu, luați în considerare intrarea / ieșirea unei matrice dinamice unidimensionale de lungime arbitrară, specificată de la tastatură.

cout <> n; // introduceți dimensiunea matricei

masiv = (int *) malloc (n * sizeof (int)); // alocarea memoriei dinamice

dacă (! massiv) // verificați alocarea memoriei

cout <

pentru (i = 0; i> masiv [i]; // introduceți un matrice

pentru (i = 0; i

liber (masiv); // eliberați memoria

În acest program, pointerul este utilizat numai pentru alocarea memoriei dinamice. Mai departe, în program, elementele matricei sunt accesate prin numele matricei, care este același cu numele indicelui.

Pentru alocarea dinamică a memoriei poate folosi, de asemenea, funcția calloc (). Spre deosebire de funcția calloc malloc în afară de zona de alocare de memorie sub matrice de alt element de matrice iniializează la zero.

În funcție de versiunea de C ++ pentru fragmente mari dinamice de memorie pot farmalloc funcții de aplicație (), farcalloc (), farcoreleft () și farfree ().







Articole similare

Trimiteți-le prietenilor: