Dynamic Memory Allocation in C
प्रोग्राम execution के समय memory को allocating करने की प्रक्रिया को Dynamic memory allocation कहते है।Dynamic memory allocation का काम आपकी प्रोग्रामिंग जरूरतों के अनुसार manual allocation और मेमोरी को free करना है।
C प्रोग्रामिंग लैंग्वेज memory allocation और management के लिए चार (4 ) functions
- malloc()
- calloc()
- realloc()
- free()
प्रदान करती है। ये सारे फ़ंक्शन <stdlib.h> header file में होते हैं।
Note : Dynamic memory allocation मे pointer का महत्वपूर्ण role होता है। Allocated की गई memory को केवल pointers के माध्यम से एक्सेस किया जा सकता है।
Dynamic Memory Allocation using malloc() Function in C
- malloc() एक built in function है जिसे <stdlib.h> header file में declared किया गया है।
- malloc का पूरा नाम memory allocation है | इस फ़ंक्शन का उपयोग requested memory के block को dynamically allocate करने के लिए किया जाता है।
- यह specified size की memory space को reserves करता है और memory location की ओर इशारा करते हुए एक null pointer को return है। return किया गया pointer आमतौर पर void type का होता है।
- malloc() Function Syntax :
Syntax : ptr = (cast_type *) malloc (byte_size);
- malloc() का Example :
Example: ptr = (float*) malloc(100); When this statement is successfully executed, a memory space of 100 bytes is reserved.
Dynamic Memory Allocation using calloc() Function in C
- calloc का पूरा नाम contiguous allocation है | इस फ़ंक्शन का उपयोग requested memory के multiple block को allocate करने के लिए किया जाता है।
- इस फंक्शन उपयोग complex data structures ( जैसे arrays और structures )को मेमोरी allocate करने के लिए किया जाता है।
- यह शुरू में सभी bytes को शून्य से initializes करता है।
- यदि memory space को allocate करते समय कोई error आती हैं या फिर memory की shortage होती है तो यह NULL pointer को return है।
- calloc() Function Syntax:
Syntax : ptr = (cast_type *) calloc (n, size); where : n = number of blocks size = Size of each block
- calloc() का Example :
Example: ptr = (float*) calloc(25, sizeof(float));
Dynamic Memory Allocation using realloc() Function in C
- realloc का पूरा नाम reallocation है |
- realloc () फ़ंक्शन का उपयोग करके हम पहले से allocated memory मे extra memory को जोड़ कर मेमोरी का size बढ़ा सकते है।
- calloc() Function Syntax :
Syntax : ptr = realloc (ptr, newsize); Where, ptr = pointer to the previously allocated memory newsize = New Size
Dynamic Memory Allocation using free() Function in C
- malloc() और calloc() फँक्शन दवारा occupied की गयी मेमोरी को release करने के लिए free() function को call किया जाता है |
- free() Function Syntax :
Syntax : free (ptr);