Nella programmazione C, quando eseguiamo un programma, occupa un po 'di memoria sul sistema. Se utilizziamo la memoria statica, dobbiamo assegnare un blocco di memoria fissa dal sistema, quindi dopo l'esecuzione del programma, possono verificarsi due scenari; Il programma avrà bisogno di una dimensione del blocco maggiore rispetto alle dimensioni dichiarate o avrà bisogno del blocco di memoria di dimensioni più piccole. Se il blocco di memoria diventa inferiore per il programma eseguito, i risultati non saranno precisi e se la dimensione del blocco è maggiore per il programma eseguito, la memoria libera rimanente del blocco non è utile.
Per evitare questo, si preferisce utilizzare la memoria dinamica nella programmazione C che ha diversi tipi di funzioni.
Cos'è una funzione Malloc () nella programmazione C
Nella programmazione C, se utilizziamo la memoria statica, non possiamo modificare la dimensione della memoria durante l'esecuzione del programma. È una pratica consigliata utilizzare la memoria dinamica nella programmazione C in modo che la dimensione della memoria possa essere modificata durante l'esecuzione del programma.
Per l'uso della memoria dinamica, dobbiamo includere un file di intestazione “Stdlib.H", che include tutte le funzioni della memoria dinamica. Il malloc () è anche membro di stdlib.Biblioteca H e viene utilizzato per assegnare la memoria al programma eseguito. Quando una funzione Malloc () viene chiamata in un programma, invia una richiesta al mucchio del sistema, che assegna il blocco di memoria richiesto alla funzione Malloc () o restituirà un valore nullo se non c'è spazio sufficiente sul mucchio.
Malloc () richiede il blocco di memoria in base alla necessità del programma eseguito e quando il programma viene eseguito correttamente, possiamo restituire il blocco di memoria sul heap utilizzando la funzione Free (), quindi può essere utilizzato per l'esecuzione di altre istruzioni.
La sintassi generale della funzione Malloc () è:
ptr_name = (cast-type*) malloc (dimensione);La spiegazione della sintassi sopra è semplice:
Per una migliore comprensione, considereremo un esempio, crea un file con il nome di Mal_txt.C e digitare il seguente script:
#includerePer compilare il MAL_TXT.F del file, utilizziamo il compilatore GCC:
$ GCC MAL_TXT.c -o mal_txtUna volta compilato correttamente il file senza alcun errore, eseguire il codice utilizzando il comando:
$ ./mal_txtNel codice sopra, stiamo creando l'array e stampando la somma degli elementi dell'array. Una spiegazione dettagliata del programma sopra è:
Cos'è una funzione realloc () nella programmazione C
Un'altra funzione della memoria dinamica è la funzione realloc (), viene utilizzata per modificare il blocco di memoria assegnato alla funzione Malloc (). La funzione Malloc () come discusso sopra richiede un blocco di memoria dal heap, ma per modificare la dimensione del blocco di memoria in modo da utilizzare la funzione realloc () invece di eliminare l'intero blocco di memoria e rideclaring manualmente.
La funzione realloc () è la forma corta di "riallocazione della memoria" e viene utilizzata per ridimensionare la dimensione del blocco della memoria assegnata dal heap alla funzione Malloc () o caloc (). Non disturba il contenuto originale del blocco di memoria e richiede il nuovo blocco di memoria dal heap e copia tutti i dati dal vecchio blocco di memoria al nuovo blocco di memoria senza disturbarne alcun contenuto.
La sintassi generale dell'utilizzo della funzione realloc () è:
$ ptr = realloc (ptr, notize);La spiegazione della sintassi sopra è:
Ancora una volta creeremo un file, real_file.C, e scrivi il codice in esso per una migliore comprensione dell'uso della funzione realloc ():
#includereOra compila il Real_File.C usando il compilatore GCC:
$ GCC REAL_FILE.c -o real_fileSe il file viene compilato correttamente, eseguire il programma usando il comando:
$ ./real_fileLa spiegazione della sceneggiatura sopra è:
Conclusione
Nella programmazione C, l'allocazione della memoria dinamica è l'allocazione manuale della memoria in base al requisito del programma. Le funzioni Malloc () e Realloc () fanno parte della memoria dinamica; Malloc () viene utilizzato per l'allocazione della memoria e realloc () viene utilizzato per la riallocazione della memoria. In questo articolo, abbiamo spiegato entrambi; funzioni di malloc () e realloc (), come funzionano e qual è la sintassi generale dell'utilizzo di entrambi. Infine, per una migliore comprensione, abbiamo eseguito gli esempi di entrambe le funzioni.